【问题标题】:Code::Blocks: Fortran EXECUTE_COMMAND_LINE The specified path does not existCode::Blocks: Fortran EXECUTE_COMMAND_LINE 指定路径不存在
【发布时间】:2020-09-07 09:34:32
【问题描述】:

我正在尝试在 Code::Blocks 中使用 EXECUTE_COMMAND_LINE (Fortran) 通过 Windows 命令提示符的快捷方式启动程序。我已经检查了几次路径和语法,一切都是正确的,但是每当我编译并运行代码时,当脚本到达这个命令时,我会收到一条错误消息,提示“指定的路径不存在。检查路径,然后再试一次。”。 更奇特的是,直接在命令提示符下使用 EXECUTE_COMMAND_LINE 中完全相同的命令成功地启动了应用程序,没有任何问题。 我使用的命令如下:

CALL EXECUTE_COMMAND_LINE("start C:\Users\dimpa\Desktop\Giannako\Optimization\VBA\SLDA.lnk")

我运行 Windows 10,Code::Blocks 20.03 并拥有 Fortran 的 MinGW 编译器。

也使用 SYSTEM 得到完全相同的结果。另外,如果它有助于我弄清楚发生了什么,这个命令就可以正常工作:

CALL EXECUTE_COMMAND_LINE("start C:\Users\dimpa\Desktop\Giannako\Optimization\VBA")

在我的文件资源管理器中打开文件夹 VBA。该问题似乎与打开应用程序的快捷方式有关。此外,即使在 IDE 中打开位于 dimpa\Appdata 文件夹中的文件(原始 .exe,而不是快捷方式)似乎也可以正常工作,其中 Program 文件中的任何内容都无法访问。

提前致谢。

【问题讨论】:

  • 我不知道,但我建议在任何地方避免使用反斜杠 `。 Windows 可以毫无问题地理解正斜杠 /。反斜杠可能被解释为不可预知的转义字符。试试start C:/Users/dimpa/Desktop/Giannako/Optimization/VBA/SLDA.lnk
  • @VladimirF 感谢您的回复。我尝试用 Code::Blocks 中的正斜杠替换反斜杠,得到了完全相同的消息。直接在cmd中输入它,就像一个魅力。由于某种原因,Code::Blocks 或脚本本身似乎无法访问或无法识别该路径。我不认为这是由于管理员权限,因为我尝试以管理员身份打开 IDE 并运行代码无效。也许在编译过程中发生了什么?我真的不知道。

标签: fortran codeblocks


【解决方案1】:

干杯,经过无数次的实验,我似乎找到了解决方法。

问题在于正在使用的快捷方式的原始程序的路径中包含空格。显然编译器不喜欢执行快捷方式,它最初可能在初始路径中不包含空格,但是当重定向到原始程序时可能会遇到各种各样的事情。

我试图执行的快捷方式包含一个通向 Program Files 的路径,并打开了一个附加插件以在上述程序中执行(“/m”)。在意识到尝试使用 150 字符串长度的目标运行快捷方式可能会使事情复杂化后,我直接将快捷方式的目标输入到 Windows cmd 中,它工作得非常好,并且更容易剖析和检查以便正确编写代码:

CALL SYSTEM(""Full Path to Program" "/m" "Full Path to Addon"")

希望这对面临类似问题的人有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-08
    • 1970-01-01
    相关资源
    最近更新 更多