软件守护进程处理脚本
下面是完善后的脚本,它可以以管理员身份运行,并且在后台守护一个软件进程,并记录软件异常退出的时间以及脚本被关闭的时间日志。
@echo off
REM 设置日志文件路径
set "LOG_FILE=C:\path\to\log.txt"
REM 检查管理员权限
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
echo 请以管理员身份运行此脚本!
pause
exit /b
)
REM 启动软件进程
start "" "C:\path\to\software.exe"
REM 记录软件异常退出的时间
:CHECK_PROCESS
tasklist | find /i "software.exe" >nul 2>&1
if '%errorlevel%' equ '0' (
timeout /t 5 >nul
goto CHECK_PROCESS
) else (
echo %date% %time% - 软件异常退出 >> "%LOG_FILE%"
)
REM 记录脚本被关闭的时间
echo %date% %time% - 脚本被关闭 >> "%LOG_FILE%"
请确保将 `C:\path\to\software.exe` 替换为您要守护的软件进程的实际路径,并将 `C:\path\to\log.txt` 替换为您要保存日志的实际路径。
在这个脚本中,我们使用了 `%SYSTEMROOT%\system32\cacls.exe` 命令来检查管理员权限。如果脚本没有管理员权限,它会打印一条错误消息并退出。
为了以管理员身份运行脚本,您可以创建一个特殊的快捷方式,方法如下:
1. 创建一个新的文本文件,并将以下代码复制到文件中:
Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "cmd.exe", "/c ""C:\path\to\your_script.bat""", "", "runas", 1
请将 `"C:\path\to\your_script.bat"` 替换为您实际保存脚本的路径。
2. 将文件保存为扩展名为 `.vbs` 的文件,例如 `run_as_admin.vbs`。
3. 双击运行 `run_as_admin.vbs` 文件,会弹出一个提示框要求您确认以管理员身份运行。确认后,脚本将以管理员身份运行,并在后台守护软件进程。
这样,脚本将在后台运行,并且具有管理员权限。
如果希望脚本可以一直执行,并在软件异常退出后重新启动软件进程,可以对脚本进行一些修改。下面是修改后的脚本:
@echo off
REM 设置日志文件路径
set "LOG_FILE=C:\path\to\log.txt"
REM 检查管理员权限
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
echo 请以管理员身份运行此脚本!
pause
exit /b
)
:START
REM 启动软件进程
start "" "C:\path\to\software.exe"
REM 记录软件异常退出的时间
:CHECK_PROCESS
tasklist | find /i "software.exe" >nul 2>&1
if '%errorlevel%' equ '0' (
timeout /t 5 >nul
goto CHECK_PROCESS
) else (
echo %date% %time% - 软件异常退出 >> "%LOG_FILE%"
goto START
)
REM 记录脚本被关闭的时间
echo %date% %time% - 脚本被关闭 >> "%LOG_FILE%"
在这个修改后的脚本中,我们添加了一个标签 :START,用于重新启动软件进程。在软件异常退出后,脚本会记录异常退出的时间,并通过 goto START 返回到 :START 标签处重新启动软件进程。
这样,脚本将持续执行,并在软件异常退出时自动重新启动软件进程。
如果希望在脚本执行时不显示命令提示符窗口,您可以使用 VBScript 来启动批处理脚本。下面是修改后的脚本:
Set objShell = CreateObject("WScript.Shell")
objShell.Run "cmd /c ""C:\path\to\your_script.bat""", 0, True
请将 "C:\path\to\your_script.bat" 替换为您实际保存脚本的路径。
将上述代码保存为一个扩展名为 .vbs 的文件,例如 run_as_admin.vbs。
然后,您可以创建一个特殊的快捷方式,以管理员身份运行 run_as_admin.vbs 文件。方法如下:
-
右键单击
run_as_admin.vbs文件,选择 "发送到",然后选择 "桌面 (快捷方式)",这将在桌面上创建一个快捷方式。 -
右键单击新创建的快捷方式,选择 "属性"。
-
在 "快捷方式" 选项卡中,单击 "高级" 按钮。
-
在 "高级属性" 窗口中,勾选 "以管理员身份运行",然后单击 "确定"。