如果我知道.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 :(得分: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