2012-02-03 117 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)