运行命令如果失败则运行另一个如果成功则结束

Run command If fails then run the other one if success then end

我正在尝试找到一种从所有工作室工作站卸载 maya2019 的方法。我们有 3 个版本的 maya2019,具有不同的卸载命令:

"C:\Program Files\Autodesk\Maya2019\Setup\Setup.exe" /P {D4BE10F2-3E2D-4120-863A-765623D53264} /M MAYA /LANG en-us /q

"C:\Program Files\Autodesk\Maya2019\Setup\Setup.exe" /P {77067FD9-800C-48B4-803D-569642ADABC5} /M MAYA /LANG en-us /q

"C:\Program Files\Autodesk\Maya2019\Setup\Setup.exe" /P {1DB1AEB7-EDBD-4BB1-87DB-26C72576DA42} /M MAYA /LANG en-us /q

我需要制作一个运行命令的脚本,如果一个失败则运行下一个,如果成功则退出并停止。

现在我有这个:

if "C:\Program Files\Autodesk\Maya2019\Setup\Setup.exe" /P {D4BE10F2-3E2D-4120-863A-765623D53264} /M MAYA /LANG en-us /q; then
    echo success && exit
else
if "C:\Program Files\Autodesk\Maya2019\Setup\Setup.exe" /P {77067FD9-800C-48B4-803D-569642ADABC5} /M MAYA /LANG en-us /q; then
    echo success && exit
else
if "C:\Program Files\Autodesk\Maya2019\Setup\Setup.exe" /P {77067FD9-800C-48B4-803D-569642ADABC5} /M MAYA /LANG en-us /q; then
    echo success && exit

但我不确定我的方向是否正确?

感谢您的帮助

正如 Theo 在对该问题的评论中所建议的,更有效的解决方案是在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall 处查询注册表以根据命令中的 GUID 查找卸载命令行。

提供了有关如何执行此操作的指示。

如果这不是一个选项,这里有一个 PowerShell 解决方案:

foreach ($guid in '{D4BE10F2-3E2D-4120-863A-765623D53264}', 
                  '{77067FD9-800C-48B4-803D-569642ADABC5}', 
                  '{1DB1AEB7-EDBD-4BB1-87DB-26C72576DA42}') {

  $exe = 'C:\Program Files\Autodesk\Maya2019\Setup\Setup.exe'

  $ps = Start-Process -PassThru -Wait $exe "/P $guid /M MAYA /LANG en-us /q"

  if ($ps.ExitCode -eq 0) { "Success"; exit 0 }

}

Write-Warning "Uninstallation failed."
exit $ps.ExitCode

Start-Process -PassThru -Wait 启动安装程序进程,等待其终止,然后 returns 一个代表已终止进程的 System.Diagnostics.Process 实例,其退出代码 (.ExitCode) 可以然后接受检查。退出代码 0 表示成功,任何其他值表示失败。