
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?