從 powershell txt 檔案中刪除行

從 powershell txt 檔案中刪除行

我必須模擬從進程清單中殺死任務。我獲取進程列表,將其發送到文字檔案 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所提到的,這些資訊不能儲存在變數中嗎?

相關內容