2023年5月16日 星期二

[研究]Windows 如何讓程式執行 5 分鐘後自動關閉 ?

[研究] Windows  如何讓程式執行 5 分鐘後自動關閉 ?

2023-05-16

您可以使用 Windows 中的命令提示字元 (Command Prompt) 或 PowerShell 執行以下命令,讓程式在 5 分鐘後自動關閉:

timeout 300 & taskkill /im <程式名稱>.exe /f

請將 <程式名稱> 替換為您要關閉的程式的名稱,例如 Notepad.exe。此命令會等待 5 分鐘 (300 秒),然後強制關閉指定的程式。

例如:timeout 5 & taskkill /im notepad.exe /f


如果您要執行的程式需要以特定的方式啟動,請將上述命令放入一個批次檔案 (.bat) 中,並將您要啟動的程式名稱添加到檔案中。例如:

start <程式名稱>.exe

timeout 300

taskkill /im <程式名稱>.exe /f

這個批次檔案將啟動指定的程式,等待 5 分鐘,然後強制關閉該程式。

********************************************************************************

Windows  如何偵測到  Notepad.exe 程式執行 5 秒後自動關閉 ? 持續監控

ChatGPT

要在Windows中偵測Notepad.exe程式執行5秒後自動關閉,可以使用PowerShell腳本來持續監控該程式的運行狀態。下面是一個示例腳本:

$processName = "notepad"  # 設定Notepad.exe程式的進程名稱
$timeout = 5             # 設定監控的時間閾值(秒)

$process = Start-Process -FilePath "notepad.exe" -PassThru

while(!$process.HasExited) {
    Start-Sleep 1  # 每秒監控一次
    $timeout--
    if($timeout -le 0) {
        # 已經超過閾值,Notepad.exe仍然運行
        Write-Host "Notepad.exe運行超過5秒"
    taskkill /im notepad.exe /f
        break
    }
}

if($process.HasExited) {
    # Notepad.exe已經關閉
    Write-Host "Notepad.exe已經關閉"
}


這個腳本首先使用Start-Process命令啟動Notepad.exe程式,並通過-PassThru參數獲取該進程的物件。然後,在一個無窮迴圈中,每秒檢查一次該進程是否已經結束。如果進程已經結束,則表示Notepad.exe已經關閉;如果超過5秒仍然運行,則表示Notepad.exe運行超過了預期的時間閾值。

請注意,您需要將此腳本保存為.ps1檔案,然後在PowerShell中運行。同時,請確保在運行腳本時具有足夠的權限以啟動和監控進程。



PS C:\temp> 1.ps1
1.ps1 : 無法辨識 '1.ps1' 詞彙是否為 Cmdlet、函數、指令檔或可執行程式的名稱。請檢查名稱拼字是否正確,如果包含路徑的話,
請確認路徑是否正確,然後再試一次。
位於 線路:1 字元:1
+ 1.ps1
+ ~~~~~
    + CategoryInfo          : ObjectNotFound: (1.ps1:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException


Suggestion [3,General]: 找不到 1.ps1 命令,但它確實存在於目前的位置。Windows PowerShell 預設並不會從目前的位置載入命令。如果您信任這個命令,請改為輸入 ".\1.ps1"。如需詳細資料,請參閱 "get-help about_Command_Precedence" 。
PS C:\temp> dir 1.ps1


    目錄: C:\temp


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----      2023/5/16  上午 09:26            496 1.ps1


PS C:\temp>       

PowerShell 執行 .ps1 要加上路徑

********************************************************************************

(完)

沒有留言:

張貼留言