
Tengo que simular la eliminación de una tarea de la lista de procesos. Obtengo la lista de procesos, la envío al archivo de texto Process.txt y luego hago que el usuario ingrese la tarea que desea eliminar. Mi principal problema es que tengo que hacer esto en un bucle. Pero a menos que cambie el archivo de salida a Process2.txt, se eliminará todo el archivo. Entonces, cuando llego a la parte del bucle donde les pido que sigan eliminando el proceso hasta que aborten, terminaré con muchos archivos. ¿Existe alguna forma de mantener el mismo archivo y simplemente eliminar la línea que ingresan?
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
}
Respuesta1
Si llama recursivamente a esta función, simplemente devuelva su proceso coincidente:
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)
No estoy seguro de por qué se crean Process.txt o Process2.txt para almacenar información. Como mencionó SimonS, ¿no se puede almacenar esta información en variables?