我有一个类似的批处理文件程序。
@echo off
start Mat.exe
>>Need a code here to runand check for termination of "Mat.exe"
rundll32.exe user32.dll, LockWorkStation
>>end of program
如果有人可以帮我设置程序,以便我可以在“Mat.exe”文件终止后立即锁定我的电脑。我真的很感激。提前致谢
答案 0 :(得分:5)
只需在start
之前删除Mat.exe
,这样您的批处理文件就会等到Mat.exe
完成。
编辑:仅当您的Mat.exe
在控制台或类似设备中运行时才有效。
如果删除start
不起作用,您可能需要检查天气是否仍在运行Mat.exe
。为此,我找到了一个非常有用的帖子,它适用于你:How to wait for a process to terminate to execute another process in batch file
Edit2:完整代码:
@echo off
:LOOP
start Mat.exe
TASKLIST 2>&1 | find "Mat.exe" > nul
IF ERRORLEVEL 1 (
rundll32.exe user32.dll, LockWorkStation
) ELSE (
SLEEP 3
GOTO LOOP
)
您可以根据需要调整SLEEP
,但我建议至少使用1秒,否则您将100%使用。
答案 1 :(得分:1)
尝试使用/ Wait开关的Start命令。这是一个例子:
@echo off
REM //start Mat.exe
start /wait [path of Mat.exe]
rundll32.exe user32.dll, LockWorkStation
请记住使用8.3文件名,并且不要在路径字符串
中包含(“”)