避免点反斜杠 Windows 10 Powershell

Rog*_*Dec 10 powershell windows-10

这是一件非常烦人的事情,要.exe在 Powershell 中运行当前目录中的任何内容,我需要使用一个.\提前。

例如,如果我fastboot.exe在当前文件夹中有程序,我不能fastboot像在cmd. 我被迫输入:

.\fastboot
Run Code Online (Sandbox Code Playgroud)

如果我只是输入fastboot(没有.\我得到一些错误,如:

术语“fastboot”不被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。

+ fastboot + ~~~~~~~~ + CategoryInfo : ObjectNotFound: (fastboot:String) [], CommandNotFoundException +fullyQualifiedErrorId : CommandNotFoundException

如何避免这种情况?

Lie*_*ers 8

默认情况下,Powershell 不会从当前位置加载命令。

建议[3,General]:找不到命令xxx.exe,但当前位置确实存在。默认情况下,Windows PowerShell 不会从当前位置加载命令。如果您信任此命令,请输入“.\xxx.exe”。有关更多详细信息,请参阅“get-help about_Command_Precedence”。

所以你有两个选择

  • @CarlWalsh - 我不知道为什么 `cmd` 在这方面表现不同,但我认为它是为了向后兼容而保留的。Afaik,这*是*`cmd` 中的一个安全问题。如果我能让域管理员在我的计算机上打开命令提示符,导航到我控制下的文件夹,我在其中放置了恶意的“dir”可执行文件:我可以让它做任何我想做的事情。您应该将您的问题作为新问题发布。 (2认同)

小智 6

如果你不喜欢打字.\command.ps1,你可以直接打字command 并按 Tab 键。如果当前目录中有command.ps1文件,它将自动完成。

我认为这足够符合人体工程学,可以保持默认行为的安全优势。