Loops 在定义的循环数之后批处理退出循环

Loops 在定义的循环数之后批处理退出循环,loops,batch-file,uninstallation,Loops,Batch File,Uninstallation,我希望以定义的循环数(10个循环)退出我的循环。我在谷歌上看了一些东西,但循环是做其他事情,所以我有点迷路了 这是我的基本循环脚本,我希望你们中的一位能够教育我,为我指明正确的方向。如果你想知道我是怎么做的,这是为什么,如果你有更好的选择,请让我知道。我对这批脚本编写相当陌生,我乐于接受建议 此卸载程序.exe不会暂停批处理脚本。因此,我基本上是在寻找Uninstaller.exe,它将在Uninstaller.exe过程完成后被删除。因此,一旦循环检测到可执行文件被删除,它将退出循环并继续执行

我希望以定义的循环数(10个循环)退出我的循环。我在谷歌上看了一些东西,但循环是做其他事情,所以我有点迷路了

这是我的基本循环脚本,我希望你们中的一位能够教育我,为我指明正确的方向。如果你想知道我是怎么做的,这是为什么,如果你有更好的选择,请让我知道。我对这批脚本编写相当陌生,我乐于接受建议

此卸载程序.exe不会暂停批处理脚本。因此,我基本上是在寻找Uninstaller.exe,它将在Uninstaller.exe过程完成后被删除。因此,一旦循环检测到可执行文件被删除,它将退出循环并继续执行脚本中的下一个操作

我曾经有过几次卸载程序在其结束前崩溃,并删除了其自身,阻止批处理文件继续运行。所以我想最好在退出之前只让它循环一定次数

:: Uninstall App
"C:\Program Files\App Name\uninstall.exe" -quiet

::Validates the uninstall
SET LookForUninstaller="C:\Program Files\App Name\uninstall.exe"

:CheckForUninstaller
IF NOT EXIST %LookForUninstaller% GOTO ExitLoop

TIMEOUT /T 5 >nul

GOTO CheckForUninstaller

:ExitLoop

使用“start”命令在不同进程上运行卸载程序可能会使您受益匪浅。 您还可以利用其可选的“/WAIT”,这将允许批处理等待,直到流程完成才能继续。 毕竟,您可能不需要循环

i、 e。
start/WAIT“C:\Program Files\App Name\uninstall.exe”

以下是我所做的工作,看起来工作正常

::Set Uninstaller Variable
SET AppToUninstall="C:\Program Files\App Name\uninstall.exe"

:: Uninstall App
"%AppToUninstall%" -quiet

::Loops for 12 times in 10 second intervals (Total 120 seconds) to confirm deletion. Loop will exit after 12 loops and move on if uninstaller is not deleted.
for /l %%i in (1,1,12) do (
TIMEOUT /T 10 >nul
IF NOT EXIST %AppToUninstall% GOTO ExitLoop
)
:ExitLoop

一个很好的起点是
set/A
,它能够进行诸如递增计数器之类的数值运算;然后可以使用
if
语句检查当前计数器值,并有条件地跳过
goto
命令;在新的命令提示符窗口中键入
set/?
if/?
,以获取有关这些命令的更多帮助…我确实有一些其他可执行文件被触发,如您上面所述。不幸的是,此“uninstaller.exe”不会暂停批处理脚本。这是一个困难的过程,因为无法复制,祝您搜索成功。如果删除“-quiet”选项,是否等待