📌  相关文章
📜  -windows 在程序关闭时运行脚本 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:13:03.627000             🧑  作者: Mango

在程序关闭时运行脚本 - Shell-Bash

在开发过程中我们经常需要在程序关闭前执行某些脚本来完成我们需要的任务,比如清理临时文件、记录日志信息等等。使用 Shell-Bash 可以轻松实现这个功能,本文将介绍如何在 Windows 上实现在程序关闭时运行脚本的方法。

方案一:使用 Task Scheduler

Task Scheduler 是 Windows 系统自带的任务调度程序,可以用来在特定的时间或事件触发时执行任务,其中就包括在程序关闭时执行任务的功能。

操作步骤如下:

  1. 按下“Win + R”组合键,打开运行窗口,输入“taskschd.msc”并回车,打开 Task Scheduler。

  2. 在 Task Scheduler 左侧的导航栏中选择“Task Scheduler Library”,然后单击菜单栏中的“Create Task”。

  3. 在“General”分页中填写任务名称和描述,勾选“Run with highest privileges”,然后选择“Configure for”为“Windows 10”。

  4. 在“Triggers”分页中单击“New”按钮,创建触发器,选择“On an event”为触发类型,并在“Log:”中选择“Application”,在“Source:”中填写“Application Error"。

  5. 在“Actions”分页中单击“New”按钮,创建动作,选择“Start a program”为操作类型,然后在“Program/script:”中填写需要执行的脚本路径。

  6. 单击“OK”按钮保存任务,然后关闭 Task Scheduler。

现在每次程序异常退出时 Task Scheduler 就会自动执行指定的脚本。

方案二:使用 PowerShell 脚本

如果不想使用 Task Scheduler,我们也可以编写 PowerShell 脚本来实现在程序关闭时执行任务的功能。

操作步骤如下:

  1. 打开记事本,输入以下脚本代码:
$processid = Get-Process -Name "yourprocessname" | ForEach-Object{$_.ID}
while($true)
{
    try
    {
        Get-Process -Id $processid
    }
    catch
    {
        # 在这里写入需要执行的脚本命令
        break
    }
    Start-Sleep -Seconds 1
}

将“yourprocessname”替换为需要监控的程序的名称,将“# 在这里写入需要执行的脚本命令”替换为需要执行的脚本命令。

  1. 保存脚本文件,并将文件名的后缀改为“.ps1”。

  2. 按下“Win + X”组合键,选择“Windows PowerShell (Admin)”以管理员权限启动 PowerShell。

  3. 在 PowerShell 中输入以下命令:

Set-ExecutionPolicy RemoteSigned

以允许执行脚本。

  1. 输入以下命令以运行脚本:
& "C:\path\to\your\script.ps1"

将“C:\path\to\your\script.ps1”替换为脚本文件的实际路径。

这样,每次程序关闭时 PowerShell 就会自动执行指定的脚本。

以上两种方案都可以实现在程序关闭时执行任务的功能,可以根据实际情况选择合适的方案。