“如果' exe'的批处理文件没有运行(任务管理器)然后执行此任务“?

时间:2015-07-28 06:41:04

标签: batch-file cmd

我对批处理文件一无所知,而且我正在做一些事情。我想写一个继续在后台运行的批处理文件,它本身将处理以确定是否' java.exe'正在运行,如果没有,则会触发其他批处理文件(说' abc.bat'

这个' abc.batch'设置一些参数并启动执行这些参数的java.exe' 。我想要这个' java.exe'继续运行,如果有人关闭它,它应该立即重新执行' abc.bat'。此外,我不想在' abc.bat'中进行更改。

如果它令人困惑,我想为我的写作技巧道歉,我希望你要求澄清。

1 个答案:

答案 0 :(得分:2)

@if (@X)==(@Y) @end /* JSCRIPT COMMENT **


@echo off

set process_to_check=java.exe
:repeat

cscript //E:JScript //nologo "%~f0" | find /i "%process_to_check%" >nul 2>&1 && (
    echo process %process_to_check%  is running
) || (
    echo process %process_to_check%  is not running
    call abc.bat
)
rem wait 5 minutes
ping localhost -n 1 -w 300000 >nul
exit /b

************** end of JSCRIPT COMMENT **/


var winmgmts = GetObject("winmgmts:\\\\.\\root\\cimv2");
var colProcess = winmgmts.ExecQuery("Select * from Win32_Process");
var processes =  new Enumerator(colProcess);
for (;!processes.atEnd();processes.moveNext()) {
    var process=processes.item();
    WScript.Echo( process.processID + "   " + process.Name );
}