
명령을 실행할 때 Windows Powershell이 잠기는 것을 방지하려면 어떻게 해야 합니까? Linux에서는 명령 끝에 &를 추가하면 해당 프로세스를 닫지 않고도 터미널을 계속 사용할 수 있다는 것을 알고 있습니다. Windows Powershell과 비슷한 것이 있습니까?
답변1
명령을 실행할 때 Windows Powershell이 잠기는 것을 방지하려면 어떻게 해야 합니까?
cmdlet을 사용하여 Start-Job
백그라운드에서 작업을 시작합니다.
&
이는 Unix/Linux에서 명령 끝에 사용하는 것과 동일한 Powershell입니다 .
PowerShell 백그라운드 작업
PowerShell 백그라운드 작업을 만드는 가장 쉬운 방법은
Start-Job
cmdlet을 사용하는 것입니다. cmdlet을 사용하여 스크립트 블록을 지정할 수 있습니다. 예를 들어 다음 명령은 1에서 50 사이의 숫자를 백그라운드 작업으로 가져오는 간단한 스크립트 블록을 실행합니다.Start-Job {1..50}
다음 한 줄 명령을 사용하여 scriptblock에 인수를 전달할 수 있습니다.
Start-Job {Param($log,$newest) Get-EventLog $log Newest $newest} -ArgumentList "system",25
또는 스크립트를 실행할 수 있습니다.
Start-Job -FilePath C:\scripts\Send-UptimeMail.ps1 -ArgumentList (Get-Credential [email protected])
아래에서 이 세 가지 명령의 결과를 볼 수 있습니다. PowerShell 3.0에서 이러한 명령을 실행했습니다. 그러나 PSJobTypeName 열은 표시되지 않지만 PowerShell 2.0에서도 작동합니다.
출력은
Start-Job
작업 대기열 개체입니다. cmdlet을 사용하여-Job
작업과 해당 결과를 관리합니다. ID로 채용정보를 참조할 수 있습니다. 위 이미지에서 작업 ID가 1에서 3, 5로 어떻게 이동하는지 확인하세요.
위 링크에서는 다음 주제를 다루는 더 많은 세부정보를 다루고 있습니다.
Cmdlet을 사용하여
Get-WMIObject
백그라운드 작업 만들기Cmdlet을 사용하여
Invoke-Command
백그라운드 작업 만들기백그라운드 작업 관리
작업 결과 검색
작업을 중지하고 기다리는 중
추가 읽기
답변2
Jobs의 대안으로 다음을 사용할 수 있습니다.런타임: 백그라운드에서 명령을 실행하는 데 더 높은 성능과 더 적은 오버헤드를 제공합니다.
구현: