2012-02-03 163 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' – 2012-02-03 09:01:16

回答

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 @ – 2012-02-03 09:00:56

+0

這不是一個路徑 - 這是一個命令行 – JohnL 2012-02-03 09:02:47

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)