批量扩展变量不能用于子串替换功能

时间:2013-07-15 07:40:57

标签: string variables batch-file replace expansion

我初学者,我的任务是重命名文件夹中的文件,首先这里是我的一段代码: -

setlocal enabledelayedexpansion
set tempLogDate=0
set g=0

for /r %targetStore% %%i IN (*2013*.*) do (
  set tempLogDate=9
  set g=!g:%tempLogDate%=!
)

问题是变量%tempLogDate%值是0而不是9,我知道我需要使用变量扩展(我有)但我不能替换代码“set g =!g:%tempLogDate%.rar =!” “设置g =!g:!tempLogDate!.rar =!”,我尝试逃避角色但没有结果,伙计们请帮助我......提前谢谢

1 个答案:

答案 0 :(得分:3)

请查找delayed expansionsetlocal /?endlocal /?。例如:

@ECHO OFF &setlocal enabledelayedexpansion
set "tempLogDate=0"
set "g=0"

for /r %targetStore% %%i IN (*2013*.*) do (
  set "tempLogDate=9"
  CALL SET "g=%%g:!tempLogDate!=%%"
)