【发布时间】:2011-03-11 08:41:21
【问题描述】:
默认情况下,Powershell 在任何本地可执行文件之前都需要“.\”。因此,要在 Powershell 中执行本地命令,您需要输入类似
.\foo arg1
如何关闭输入“.\”的要求,这样我就可以运行了
foo arg1
“.\”的正确名称是什么?
【问题讨论】:
标签: powershell
默认情况下,Powershell 在任何本地可执行文件之前都需要“.\”。因此,要在 Powershell 中执行本地命令,您需要输入类似
.\foo arg1
如何关闭输入“.\”的要求,这样我就可以运行了
foo arg1
“.\”的正确名称是什么?
【问题讨论】:
标签: powershell
.是当前目录,\是路径分隔符。这意味着.\foo 是 foo 程序的相对路径。
如果. 未包含在您的PATH 环境变量中,您必须按上述方式指定它。为避免这种情况,您可以将 . 添加到您的 PATH 变量中。但根据经验,永远不要这样做,因为它会导致安全风险。最好使用.\foo,甚至更好地提供绝对路径。
【讨论】:
这是一项安全功能,可确保您仅在所需位置运行可执行文件。这可确保您运行的是正确的可执行文件,而不是被劫持的。
这是一种语言/shell 实现,您无法将其关闭,IMO。
【讨论】:
你不能把它关掉,但是你可以把你的函数放在一个模块中(甚至是你在其他地方加载的脚本),然后加载它,然后至少调用这些函数看起来更好(没有 .\呵呵
【讨论】:
也许。不在路径中,tabcompletion 函数会检测到这一点,因此如果您编写 foo[TAB] 则自动扩展为 .\foo。出于这个原因,如果制表符完成处理,我看不到“额外工作”在哪里放置点和斜线。
【讨论】: