代码之家  ›  专栏  ›  技术社区  ›  weiya ou

powershell如何找到可变路径?

  •  -1
  • weiya ou  · 技术社区  · 4 年前

    powershell如何找到可变路径? 例如:

    cmd: where node
    C:\Windows\System32\where.exe
    
    0 回复  |  直到 4 年前
        1
  •  2
  •   js2010    4 年前

    除了跑哪儿。exe,我会使用get命令而不是where。exe:

    get-command notepad
    gcm notepad # | ft -a
    
    CommandType Name        Version        Source
    ----------- ----        -------        ------
    Application notepad.exe 10.0.18362.693 C:\Windows\system32\notepad.exe
    

    如果你真的不喜欢where别名:

    remove-item alias:where -force
    
        2
  •  1
  •   Wasif    4 年前

    通常,当你调用where时。exe,它将首先在当前目录中查找可执行文件。然后它将在PATH环境变量中的目录中搜索。如果没有指定任何扩展名,它将在extensions中搜索PATHEXT环境变量。所以当你使用 where node 它将首先在当前目录和路径目录中搜索,并枚举类PATHEXT节点中的所有扩展名。exe,节点。蝙蝠,节点。vbs等。您可以使用 setx PATH "%path%;Directory" 和PATHEXT一样 setx PATHEXT "%pathext%;Extension 从命令提示符。此外,powershell还有一个where。exe本机替代方案:

    (Get-Command node).Definition
    

    将扩展到已知目录中找到的“节点”的完整路径。此方法的工作方式与where相同。exe。

    还有一件事我不明白,在powershell中输入where是多么简单。在哪里?是where对象的别名。所以在哪里执行。你需要运行exe吗 & where.exe param_list

    ( 注意:正如@Compo在评论中所说,如果搜索名为“node.txt”的文件,并且如果存在名为“node.txt.exe”的文件,那么它将与“node.txt.exe”匹配,因此请注意双重扩展名。 )