求救,bat脚本,将每个文件里的某个字符串,替换为部分文件名,最后一步出现问题了

mami321 2018-07-04 04:38:23
@Echo Off
SetLocal EnableDelayedExpansion
For %%i In (*.ktr) Do (
For /F "Usebackq Delims=" %%j In ("%%~nxi") Do (
Set Str=%%j
Set fileName=%%~ni
Set tableName=!fileName:~3,4!
Set Str=!Str:zengZhiDemo=tableName!
Echo !Str!>>New_%%~nxi
)
Del %%~nxi >nul
Ren New_%%~nxi %%~nxi
)
...全文
395 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinsenhome 2018-07-06
  • 打赏
  • 举报
回复
建议你 跟踪下
Set fileName=%%~ni
Set tableName=!fileName:~3,4!
Set Str=!Str:zengZhiDemo=tableName!

看看每次for循环内变量的值是否是你预期的?
mami321 2018-07-06
  • 打赏
  • 举报
回复
引用 2 楼 jinsenhome 的回复:
建议你 跟踪下
Set fileName=%%~ni
Set tableName=!fileName:~3,4!
Set Str=!Str:zengZhiDemo=tableName!

看看每次for循环内变量的值是否是你预期的?

tableName没问题,第三步出问题了,那一步替换时,获取的tableName值不正确,这个本身就是延迟变量,不知道怎么引用
mami321 2018-07-04
  • 打赏
  • 举报
回复
我想把每个文件里的zengZhiDemo字符串,替换为该文件名里第3位开始的4为字符串,发现替换时,Str是变量,tableName也是变量,Set Str=!Str:zengZhiDemo=tableName!这一步出问题了。

6,849

社区成员

发帖
与我相关
我的任务
社区描述
Windows 2016/2012/2008/2003/2000/NT
社区管理员
  • Windows Server社区
  • qishine
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧