2012-02-03 3 views
0

.exe 파일의 경로를 알고있는 경우 항목에 대한 실제 경로를 얻으려면 어떻게해야합니까?exe ​​파일의 경로를 아는 실제 경로를 얻는 방법은 무엇입니까?

예 :

$path = (Get-WmiObject -query "SELECT PathName FROM Win32_Service WHERE Name = 'Name of Service'").PathName 

cd $path #and this command not work because $path return path with service name 
+0

예 :'으로 C : \ Windows \ System32 \ svchost.exe에 -k netsvcs' –

답변

1

UPDATE : 파일 확장자 후 모든 문자를 삭제 해, 어떤 발견하면 큰 따옴표 트림 :

$p = ($path -replace '^"+([^\.]+\.\w+)\s.+$','$1').Trim('"') 
cd (Split-Path $p) 

는 분할 경로 cmdlet와 함께 파일의 디렉토리를 가져옵니다

cd (Split-Path $path -Parent) 

Parent 매개 변수는 기본 분할 위치 매개 변수이므로 그것을 밖으로 남길 수 있습니다 : 이것은 당신을 위해 작동합니다

cd (Split-Path $path) 
+0

이 작동하지 않습니다. 경로 값의 예는 C : \ Windows \ System32 \ svchost.exe -k netsvcs @ –

+0

입니다. 경로가 아닙니다. 명령 줄입니다. – JohnL

0

당신이 경로에 공백 하바하지 않는 :

$k = "C:\Windows\System32\svchost.exe -k [email protected]" 
(gci $k.Split()[0]).Directory.FullName 
1

이 시도 부여합니다.

업데이트 정규 표현식은 PathName 인수를 제거하고 파일 경로를 제공합니다. 경로 이름 값의

$service = gwmi -class Win32_Service | ? {$_.Name -eq "Name of Service"} 
$path = ($service | Select -Expand PathName) -replace "(.+exe).*", '$1' 
cd (Split-Path $path) 
관련 문제