我有以下代码。 它工作得很好,但有几个问题。 首先,我的“if not blank”检查根本不起作用。 其次,在每次迭代期间,它最后一次将服务器名称作为服务器名称和文件夹传递,这一点我真的不理解...
代码
SET servers=server01,server02
SET drive=c
SET root=program files (x86)\test\
SET backup=%root%\backup
SET folders=folder01\,folder02\file01.txt
FOR %%b in (%servers%) do (
FOR %%a in (%folders% %%b) DO (
if not %%a == "" call :backup %%b %%a
)
)
:backup
SET currentfile="\\%1\%drive%$\%2"
setlocal
echo Backing Up %currentfile%
REM mkdir "\\%1\%drive%$\%backup%"
REM xcopy /I
exit /b
endlocal
goto :end
输出
1] Backing Up "\\server01\c$\folder01\"
2] Backing Up "\\server01\c$\folder02\file01.txt"
3] Backing Up "\\server01\c$\server01"
4] Backing Up "\\server02\c$\folder01\"
5] Backing Up "\\server02\c$\folder02\file01.txt"
6] Backing Up "\\server02\c$\server02"
7] Backing Up "\\\c$\"
如您所见,第3、6和7行不是期望的。
goto :eof
比exit /b
更早出现,而且我相信 Raymond Chen 一直在使用它 :) - Matthew Strawbridge