나는 자체의 여러 인스턴스를 실행하는 응용 프로그램이 있습니다. 예컨대powershell v2 - 프로세스 ID를 얻는 방법
AppName.exe instance1
AppName.exe instance2
AppName.exe instance3
내가 AppNames 및 인스턴스의 배열을 제공하는 간단한 스크립트를 작성하려고 파워 쉘의 V2를 사용하여, 그것은을 종료 한 후 검사가 실행중인 경우, 그들을 통해 루프합니다.
이 작업을 수행하는 가장 좋은 방법은 각 인스턴스를 확인하고 발견되면 processID를 캡처하여 stop-process cmdlet에 전달하는 것입니다.
하지만 프로세스 ID를 얻는 방법을 알 수 없습니다.
지금까지 내가 가진 :
는$appName = "AppName.exe"
$instance = "instance1"
$filter = "name like '%"+$appName+"%'"
$result = Get-WmiObject win32_process -Filter $filter
foreach($process in $result)
{
$desc = $process.Description
$commArr = $process.CommandLine -split"()"
$inst = $commArr[2]
$procID = "GET PROCESS ID HERE"
if($inst -eq $instance)
{
Stop-Process $procID
}
}
는 사람이 어디하시기 바랍니다에서 프로세스 ID를 얻는 방법을 말해 줄래?
이가 더 간단해야한다 :'$ PID = GET 프로세스 APPNAME을 | 난 여전히 새로운 해요 -expand 아이디' –
을 선택 PowerShell로하지만 이것이 내가 좋아하는 이유입니다. 15 줄의 코드 줄이 1로 줄어 들었습니다. 그러나 실행할 때 다음과 같은 오류가 나타납니다. "변수 PID는 읽기 전용이거나 상수이기 때문에 덮어 쓸 수 없습니다." – IGGt
아 죄송합니다. 변수 이름이 내장되어 있습니다. 당신은 예를 들어'$ processid' –