Windows中是否有等效的pwdx?还是一些解决方法?

时间:2019-05-21 17:09:24

标签: windows powershell cmd

我只想确定正在运行的进程的工作目录。在Linux中,您可以使用pwdx,但是我在Windows中找不到类似的工具。获得命令行解决方案将是完美的。

我几乎尝试了所有可能的Windows命令。 wmic gwmic taskkill ..它们都不是我的问题的解决方案。

2 个答案:

答案 0 :(得分:1)

PowerShell中的Get-Process命令为您提供等效信息(至少是.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

答案 1 :(得分:0)

如果您希望获得与Process Explorer相同的信息,则可以在该进程上使用Windows Management Instrumentation查询。

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
}