Removendo linhas do arquivo txt do PowerShell

Removendo linhas do arquivo txt do PowerShell

Estou tendo que simular a eliminação de tarefas da lista de processos. Eu recebo a lista de processos, envio-a para o arquivo de texto process.txt e, em seguida, peço ao usuário que insira a tarefa que deseja eliminar. Meu principal problema é que tenho que fazer isso em loop. Mas, a menos que eu altere o arquivo de saída para process2.txt, todo o arquivo será excluído. Então, quando chego à parte do loop, onde peço que continuem interrompendo o processo até abortar, acabo com muitos arquivos. Existe alguma maneira de manter o mesmo arquivo e apenas excluir a linha inserida?

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
    }

Responder1

Se você estiver chamando essa função recursivamente, basta retornar o processo correspondente:

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)

Não sei por que process.txt ou process2.txt são criados para armazenar informações. Como SimonS mencionou, essas informações não podem ser armazenadas em variáveis?

informação relacionada