
我必須模擬從進程清單中殺死任務。我獲取進程列表,將其發送到文字檔案 process.txt,然後讓用戶輸入他們想要終止的任務。我的主要問題是我必須循環執行此操作。但除非我將輸出檔案更改為 process2.txt,否則整個檔案都會被刪除。因此,當我到達循環部分時,我要求他們繼續終止進程直到中止,我最終會得到很多文件。有沒有辦法保留相同的檔案並刪除他們輸入的行?
function KillTask {
get-process | out-file "D:\process.txt"
Get-Content -Path D:\process.txt
$Killtask = Read-Host -Prompt "What task would you like to kill"
get-content D:\process.txt | select-string -AllMatches $killtask - notmatch | Out-File D:\process2.txt -force
Get-Content -Path D:\process2.txt
}
答案1
如果您遞歸呼叫此函數,只需傳回符合的進程:
function KillTask {
get-process | out-file "D:\process.txt"
$Killtask = Read-Host -Prompt "What task would you like to kill"
get-content D:\process.txt | select-string -AllMatches $killtask
}
Do {
$process = KillTask
# do stuff with the process
} While ($process)
我不確定為什麼要創建 process.txt 或 process2.txt 來儲存資訊。正如SimonS所提到的,這些資訊不能儲存在變數中嗎?