【问题标题】:Why .\Turorial.exe can run but Tutorial.exe not on PowerShell? [duplicate]为什么 .\\Turorial.exe 可以运行,但 Tutorial.exe 不能在 PowerShell 上运行? [复制]
【发布时间】:2022-10-02 00:05:39
【问题描述】:

我是 cmake 的新手,并尝试运行 cmake 示例。

编译过程一切正常,但是当我运行Tuturial.exe 5 on电源外壳,报错如下:

建议[3,General]:找不到命令django-admin,但是 确实存在于当前位置。 Windows PowerShell 不加载 默认情况下来自当前位置的命令。如果你相信这个 命令,而是键入:\".\\django-admin\"。请参阅“获取帮助” about_Command_Precedence\" 了解更多详情。

但是运行.\\Tutorial.exe 5,一切正常。

所以我想知道为什么会发生这个错误,如果我想了解更多,我应该学习什么?

注意:运行Tuturial.exe 5 on命令也是正常的。

  • 这是shell的一个属性(PS和CMD是不同的shell),没有别的了。 . 指的是当前目录,\\ 是路径分隔符。您会发现在 Linux 世界中,大多数 shell 都需要 ./(因为路径分隔符是 / 而不是 \\)。

标签: powershell cmake


【解决方案1】:

假设您在当前目录中有一个名为 foo 的恶意命令,您不知道,并且您的系统上还安装了命令 foo。如果您尝试运行(系统)命令foo,它将改为运行恶意程序。因此,简而言之,这是出于安全原因,因为它可以保护您免于运行意外程序,这就是 PowerShell(以及几乎所有 Linux,正如 HolyBlackCat 指出的那样)强制您使用 ./ 或 @ 987654326@ 在您的程序名称前面。

this 问题中指出并解释了这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-19
    • 1970-01-01
    • 2023-03-17
    • 2019-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多