我试图将变量设置为另一个变量的值,并删除子字符串。这发生在几个for
循环中,我将在下面说明。
setlocal EnableDelayedExpansion
for %%e in (a b c d) do (
set outerLoop=%%e
echo Handling !outerLoop!
dir *_!outerLoop! /S /B >inner-loop-files.txt
for /F "tokens=*" %%A in (inner-loop-files.txt) do (
set innerLoopFile=%%A
set search=_!outerLoop!
REM Not working!
REM set replacedFile=!innerLoopFile:search=!
echo !innerLoopFile!
echo !replacedFile!
)
)
我期待这样的输出:
Handling a C:\Directory\File.ext_a C:\Directory\File.ext
我知道最里面循环中的标记行很接近,但我无法获得正确的扩展语法。当我这样做时,它适用于单个示例(虽然因为它没有使用变量,所以对其他迭代来说是错误的):
set replacedFile=!innerLoopFile:_a=!
我需要对此表达式做些什么才能使search
正确展开?
set replacedFile=!innerLoopFile:search=!