1

第一次发帖(如果其他地方有答案,请善待,我找不到)。我确信还有 20,000 种其他更现代的方法可以完成以下任务,但我一直想要一个答案。

我要做的是运行一个循环,然后在循环结束时(完成),运行最后一步,与循环分开。我希望有人能指出我的简单思想。

谢谢大家。

这是我的批次......

for /f "eol=#" %%i in (\\server\ops\!ReinsDeploy\WindowsXPMODE\isovm-push.txt) do call :sub "%%i"

:sub

if exist "\\%1\c$\vm\isovm\09132013.txt" goto good
goto bad
goto end

:good
echo %1     good    >> \\server\ops\!ReinsDeploy\WindowsXPMODE\isovm-push-confirm.txt
goto end

:bad
echo %1     bad >> \\server\ops\!ReinsDeploy\WindowsXPMODE\isovm-push-confirm.txt
goto end

:end


:done
\\server\ops\!ReinsDeploy\WindowsXPMODE\isovm-push-confirm.txt
4

1 回答 1

0

我不确定脚本末尾的行是做什么的,但您可以移动它以在循环结束时执行它,如下所示:

for /f "eol=#" %%i in (\\server\ops\!ReinsDeploy\WindowsXPMODE\isovm-push.txt) do call :sub "%%i"

\\server\ops\!ReinsDeploy\WindowsXPMODE\isovm-push-confirm.txt
goto end

:sub

if exist "\\%1\c$\vm\isovm\09132013.txt" goto good
goto bad

:good
echo %1     good    >> \\server\ops\!ReinsDeploy\WindowsXPMODE\isovm-push-confirm.txt
goto end

:bad
echo %1     bad >> \\server\ops\!ReinsDeploy\WindowsXPMODE\isovm-push-confirm.txt
goto end

:end

此外,我认为您可以像这样简化它:

@echo off

for /f "eol=#" %%i in (\\server\ops\!ReinsDeploy\WindowsXPMODE\isovm-push.txt) do (
    if exist "\\%%i\c$\vm\isovm\09132013.txt" (
        echo %%i     good >> \\server\ops\!ReinsDeploy\WindowsXPMODE\isovm-push-confirm.txt
    ) else (
        echo %%i     bad >> \\server\ops\!ReinsDeploy\WindowsXPMODE\isovm-push-confirm.txt
    )
)

\\server\ops\!ReinsDeploy\WindowsXPMODE\isovm-push-confirm.txt

虽然自从我上次创建 cmd.exe 脚本以来已经有一段时间了,所以我只希望它能够工作。

于 2013-09-14T17:09:20.197 回答