Удаление строк из файла 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, разве эта информация не может храниться в переменных?

Связанный контент