【发布时间】:2018-09-10 21:51:54
【问题描述】:
我制作了一个带有 start /wait 的批处理脚本,并检查它是否再次运行。如果不去关闭脚本,如果它再次运行,再次等待但它不起作用,它会一遍又一遍地启动程序。
谁能告诉我该怎么做?
@ECHO OFF
:START
START /WAIT "" "C:\Program Files (x86)\Steam\Steam.exe" -bigpicture
timeout /t 10 > nul
tasklist | find /I "Steam"
if errorlevel 1 (
START C:\Scripts\shutdown.vbs
) else (
GOTO START
)
EXIT
【问题讨论】:
-
find将设置errorlevel为0,否则为1 或更大。如果找不到steam,您的代码将运行关闭,否则重新启动。 ??你不应该先检查进程并在它存在时喊它然后重新启动它吗?真的 - 你对你想要做什么的描述令人困惑。 -
问题是当 Steam 更新时它会关闭。然后它等待如果它回来更新如果没有关闭否则再次等待。但现在它将永远循环。但它必须再次等待
-
@Pascal,很明显你是在
bigpicture模式下启动steam.exe,但从那时起一切都变得不清楚了。您似乎想关闭 PC 或重新启动 Steam,但我们不知道您为什么或在哪些情况下希望这样做。我假设在启动时执行不可绕过的更新检查,如果发现程序关闭,更新并重新打开,但不是bigpicture模式;这就是你想要检测的。请edit您的问题,以更好地解释您的问题并展示您迄今为止所做的尝试。 -
顺便说一句,您可能需要的命令是,
"C:\Program Files (x86)\Steam\Steam.exe" -start steam://open/bigpicture。 -
这是我在 steam steamos 模式和 bigpicture 中直接启动的命令。如果我方便地关闭它,它会等待,然后它会运行关闭脚本,或者如果 Steam 正在更新并返回并再次等待,它会关闭。我使用命令 -steamos -bigpicture 这可以正常工作并使退出菜单更小,没有返回 Windows 的选项,但是您可以在关闭时关闭 Steam,它将转到关闭脚本,但是当更新到但我希望他回到当 Steam 从更新中回来时开始
标签: loops batch-file wait