我编写了这段代码
dir /B /S %RepToRead% > %FileName%
for /F "tokens=*" %%a in ('type %FileName%') do (
set z=%%a
echo %z%
echo %%a
)
echo %%a
工作正常,但 echo %z%
返回“回显已禁用”。
我需要设置一个 %z% 因为我想像 %z:~7%
那样分割变量
有什么想法吗?
请您参考如下方法:
有两种方法可以在 for 循环和括号范围内设置和使用变量。
setlocalenabledelayedexpansion
请参阅setlocal/?
获取帮助。这仅适用于 XP/2000 或更高版本的 Windows。 然后在循环内使用!variable!
而不是%variable%
...使用批处理转到标签
:Label
创建批处理函数。示例:
for /F "tokens=*" %%a in ('type %FileName%') do call :Foo %%a goto End :Foo set z=%1 echo %z% echo %1 goto :eof :End
批处理函数是非常有用的机制。