【问题标题】:Batch Loop Last Step批处理循环最后一步
【发布时间】:2013-09-19 02:12:25
【问题描述】:

第一次发帖(如果其他地方有答案,请善待,我找不到)。我确信还有 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

【问题讨论】:

  • 你到底打算用\\server\ops\!ReinsDeploy\WindowsXPMODE\isovm-push-confirm.txt做什么?

标签: loops for-loop batch-file


【解决方案1】:

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

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 脚本已经有一段时间了,但我只能希望它能够工作。

【讨论】:

  • 控制台...天才。虽然你说已经有一段时间了……你还是明白了。你的第二个选择是完美的。谢谢!
  • @Ant 欢迎和感谢 :) 我希望你能接受答案。我认为这是复选标记:)
猜你喜欢
  • 1970-01-01
  • 2019-08-06
  • 2017-06-15
  • 2019-01-26
  • 1970-01-01
  • 2011-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多