2

Я должен симулировать убийство задачи из списка процессов. Я получаю список процессов, отправляю его в текстовый файл process.txt и затем заставляю пользователя вводить задачу, которую он хочет убить. Моя главная проблема, я должен сделать это в цикле. Но если я не изменю out-файл на 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 ответ1

0

Если вы рекурсивно вызываете эту функцию, просто верните соответствующий процесс:

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, нельзя ли хранить эту информацию в переменных?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .