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 が述べたように、この情報は変数に保存することはできないのでしょうか?

関連情報