string - 批量扩展变量不能在子字符串替换函数中使用

标签 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 =!”到“set g=!g:!tempLogDate!.rar=!”,我尝试转义字符但没有结果,请大家帮助我..提前致谢

最佳答案

请查找延迟扩展setlocal/?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!=%%"
)

关于string - 批量扩展变量不能在子字符串替换函数中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17649059/

相关文章:

c++ - 原始字符串文字中的回车符+换行符?

只有零条目的 Android Edittext

Bash:文件路径中的变量

PHP - 复制或不复制,这是变量?

java - 从java代码运行bat文件并等待它执行TestComplete脚本 - 无法执行:(

string - 需要一个例程来检测相似但不相同的字符串

长长度 StringTokenizer 的 Java 性能问题

javascript - jquery 变量值出血

batch-file - 如何比较批处理脚本中文件的时间戳?

java - 等待 jar 从批处理运行到完成?