
プロセス リストからタスクの強制終了をシミュレートする必要があります。プロセス リストを取得し、それをテキスト ファイル 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 が述べたように、この情報は変数に保存することはできないのでしょうか?