Windows批处理脚本中的适当变量范围

时间:2013-04-30 07:47:53

标签: windows batch-file scope xcopy

我无法弄清楚这个变量范围..继承人的代码。我一直在读书,但似乎无法指出它。我想复制一个文件4次,并在每次扩展文件名时连接一个名称。它会复制:牛,牛牛,牛牛等等。

set "hash = Cow"
call:filecreate "Cow","%hash%"

:filecreate
set "name = %~1"
for /l %%C in (1,1,4) do (
for /f %%a in ('xcopy "%filez%" "%desktop%" /H /Y /R /F') do (
ren "%desktop%\system.ini" "!name!"
)
set "name = !name! %~2"
)
goto:eof

1 个答案:

答案 0 :(得分:3)

SPACES在SET声明中非常重要。

set var = something

会将变量"var "设置为" something"

set var=something

会将变量"var"设置为"something"

(还要注意 - 拥有CALL ed :filecreate,批次会再次执行:filecreate,因为它不会将标签识别为“程序结束”。您需要一个明确的GOTO :EOF之后的CALL如果您只想执行一次过程