Removendo linhas do arquivo txt do powershell

2

Estou tendo que simular o assassinato de tarefas da lista de processos. Eu recebo lista de processos, envio para o arquivo de texto process.txt e depois insiro o usuário na tarefa que eles querem matar. Meu principal problema, é que tenho que fazer isso em um loop. Mas a menos que eu mude o arquivo de saída para process2.txt, o arquivo inteiro é excluído. Então, quando eu chego na parte do loop onde eu peço para eles continuarem matando o processo até que eles abortem, eu acabo com muitos arquivos. Existe alguma maneira de manter o mesmo arquivo e apenas excluir a linha que eles entram?

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
    }
    
por Kevin Harvey 17.04.2016 / 18:59

1 resposta

0

Se você estiver chamando recursivamente essa função, basta retornar seu 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, essa informação não pode ser armazenada em variáveis?

    
por 19.04.2016 / 05:42

Tags