如何获知物理路径知道exe文件的路径?

时间:2012-02-03 08:54:45

标签: powershell

如果我知道.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 

3 个答案:

答案 0 :(得分:1)

更新:删除文件扩展名后的所有字符,如果找到任何字符,则修剪双引号:

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

使用Split-Path cmdlet

获取文件的目录
 cd (Split-Path $path -Parent)

Parent参数是默认的拆分位置参数,因此您可以将其保留:

 cd (Split-Path $path)

答案 1 :(得分:1)

试一试。

更新正则表达式将删除PathName参数,并为您提供文件路径。

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

答案 2 :(得分:0)

除非路径中有空格,否则这将对您有用:

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