Как получить физический путь, зная путь к исполняемому файлу? - PullRequest
0 голосов
/ 03 февраля 2012

Как мне получить физический путь к элементу, если я знаю путь к файлу .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 ]

1 голос
/ 03 февраля 2012

Дайте это попробовать.

Обновление Регулярное выражение удалит аргументы PathName и просто даст вам путь к файлу.

$service = gwmi -class Win32_Service | ? {$_.Name -eq "Name of Service"} 
$path = ($service | Select -Expand PathName) -replace "(.+exe).*", '$1'
cd (Split-Path $path)
1 голос
/ 03 февраля 2012

ОБНОВЛЕНИЕ: Удаляет все символы после расширения файла и обрезает двойные кавычки, если найдет:

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

Получить каталог файла с помощью командлета Split-Path

 cd (Split-Path $path -Parent)

Параметр Parent является параметром разделения местоположения по умолчанию, поэтому его можно не указывать:

 cd (Split-Path $path)
0 голосов
/ 03 февраля 2012

Это будет работать для вас, если у вас нет пробела в пути:

$k = "C:\Windows\System32\svchost.exe -k netsvcs@"
(gci $k.Split()[0]).Directory.FullName
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...