
프로세스 목록에서 작업 종료를 시뮬레이션해야 합니다. 프로세스 목록을 가져와 텍스트 파일 process.txt로 보낸 다음 사용자가 종료하려는 작업을 입력하도록 합니다. 내 주요 문제는 이 작업을 반복해서 수행해야 한다는 것입니다. 그러나 out-file을 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
이 함수를 재귀적으로 호출하는 경우 일치하는 프로세스를 반환하면 됩니다.
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가 언급했듯이 이 정보는 변수에 저장할 수 없나요?