如果我知道.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
如果我知道.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
UPDATE:刪除文件擴展名後的所有字符和裝飾雙引號如果發現任何:
$p = ($path -replace '^"+([^\.]+\.\w+)\s.+$','$1').Trim('"')
cd (Split-Path $p)
獲取與拆分路徑cmdlet的文件目錄
cd (Split-Path $path -Parent)
Parent參數是默認的分割位置參數,所以你除非你哈瓦的道路空間
cd (Split-Path $path)
這是行不通的。路徑值的示例是C:\ Windows \ System32 \ svchost.exe -k netsvcs @ – 2012-02-03 09:00:56
這不是一個路徑 - 這是一個命令行 – JohnL 2012-02-03 09:02:47
這會爲你工作:
$k = "C:\Windows\System32\svchost.exe -k [email protected]"
(gci $k.Split()[0]).Directory.FullName
讓這個嘗試可以離開它。
更新正則表達式將刪除PathName參數並給你文件路徑。路徑名值的
$service = gwmi -class Win32_Service | ? {$_.Name -eq "Name of Service"}
$path = ($service | Select -Expand PathName) -replace "(.+exe).*", '$1'
cd (Split-Path $path)
舉例:'C:\ WINDOWS \ SYSTEM32 \ svchost.exe的-k netsvcs' – 2012-02-03 09:01:16