Windows 相当于 whereis?

Svi*_*ish 202 windows command-line

在 Windows 中是否有与 Unix whereis命令等效的命令?

这样我就可以弄清楚我可以实际运行的命令在哪里。

Kev*_*vin 256

这里命令你想要做什么和去至少回到资源工具包的Windows 98,和Server 2003中,Vista中包含默认情况下,更新:

C:\>where csc
C:\Windows\Microsoft.NET\Framework\v3.5\csc.exe
C:\Windows\Microsoft.NET\Framework\v2.0.50727\csc.exe
Run Code Online (Sandbox Code Playgroud)

如果不带参数执行(在 Vista 上),它会产生我最喜欢的消息之一:

C:\>where
ERROR: The operation completed successfully.
Run Code Online (Sandbox Code Playgroud)

如果在 PowerShell 中执行,请确保包含“.exe”以区别路径中的任何“where”别名或脚本。('where' 是 Where-Object.ps1 的典型别名)

C:\> where.exe where.exe
C:\Windows\System32\where.exe
Run Code Online (Sandbox Code Playgroud)

  • 每天我都学到新东西... (8认同)
  • 有点可悲的`where`现在只是在Windows 7中返回使用帮助。想亲眼看看:p (5认同)
  • `where` 在 XP 中不可用 (2认同)
  • @TomRoggero,我本来可以更清楚。它是从 Windows 98 开始的可选资源工具包的一部分,并且仅包含在 XP 之后版本的基本安装中。 (2认同)
  • 对于使用 Windows 10 搜索此内容的任何人:您正在 powershell 中查找 `Get-Command` 或 `gcm`,并且不要在没有参数的情况下尝试它 (2认同)

Jes*_*sta 24

您可以运行以下 PowerShell 命令:

gcm <command>

获取命令

Get-Command cmdlet 获取计算机上安装的所有命令,包括 cmdlet、别名、函数、筛选器、脚本和应用程序。Get-Command 从 PowerShell 模块获取命令以及从其他会话导入的命令。要仅获取已导入到当前会话中的命令,请使用 ListImported 参数。


小智 9

请使用where命令:

> where app.exe
Run Code Online (Sandbox Code Playgroud)

这是实现目标的最佳方式。

您还可以使用 PowerShell 命令:

> $env:path.Split(';') | gci -Filter app.exe
Run Code Online (Sandbox Code Playgroud)

扩展版本如下所示:

 > $env:path.Split(';') | select -Unique | ? {$_ -and (test-path $_)} | gci -Filter app.exe
Run Code Online (Sandbox Code Playgroud)


aki*_*ira 7

骇人听闻的which.cmd:

@echo off
@set PATH=.;%PATH%

@rem 
@rem about:  something similar like the unix-alike-which, but with
@rem         within pure cmd
@rem 

if "%1" == "" (
    @echo Usage: 
    @echo.
    @echo   which 'cmd'
    @echo.
    @echo.if 'cmd' is not found, ERRORLEVEL is set to 1
    @echo.  
) else (
    ( @for %%f in (%1 %1.exe %1.cmd %1.bat %1.pif) do if not "%%~$PATH:f" == "" ( @echo %%~$PATH:f ) else @set ERRORLEVEL=1) 
)
Run Code Online (Sandbox Code Playgroud)