Есть ли эквивалентный pwdx в windows? Или какой-то обходной путь? - PullRequest
1 голос
/ 21 мая 2019

Я просто хочу определить рабочий каталог запущенного процесса.В Linux вы можете использовать pwdx, но я не могу найти аналогичный инструмент в Windows.Было бы идеально получить решение для командной строки.

Я перепробовал почти все возможные команды для окон.wmic gwmic taskkill .. ни один из них не является решением моей проблемы.

Ответы [ 2 ]

1 голос
/ 21 мая 2019

Команда Get-Process в PowerShell дает вам эквивалентную информацию (по крайней мере, путь к файлу .exe)

>Get-Process ssms | Select -Expand Path | Split-path
 C:\Program Files (x86)\Microsoft SQL Server\130\Tools\Binn\ManagementStudio

Вы можете сделать это своей собственной функцией, если хотите:

Function pwdx{
    param($Process)
    Get-Process $Process | Select -Expand Path |Split-Path
 }

 C:\Users\FoxDeploy> pwdx notepad
 C:\WINDOWS\system32

Если вам нужно сделать это в командной строке в Windows, вы можете найти процесс следующим образом.

wmic process where "name like '%notepad%'" get ExecutablePath
ExecutablePath
C:\WINDOWS\system32\notepad.exe
0 голосов
/ 21 мая 2019

Если вы хотите получить ту же информацию, что и Process Explorer, вы можете использовать запрос инструментария управления Windows для процесса.

Function Query-Process-WMI
{
    param
    (
        [Parameter( Mandatory = $true )]
        [String]
        $processName
    )

    $process                = Get-Process $processName
    $processInfo            = $process     | ForEach-Object { Get-WmiObject Win32_Process -Filter "name = '$($_.MainModule.ModuleName)'" }
    $processInfoCommandLine = $processInfo | ForEach-Object { $_.CommandLine }
    return $processInfoCommandLine
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...