gpt4 book ai didi

perl - 如何在 Perl 的路径中使用空格启动 Windows 程序?

转载 作者:行者123 更新时间:2023-12-04 06:28:55 25 4
gpt4 key购买 nike

如果我做:

my program = "C:\\MyPath\\MyProg.exe";
system(("start", $program));

MyProg 启动得很好,我的脚本在 system() 命令后恢复。但是如果路径中有空格
my program = "C:\\My Path\\MyProg.exe";
system(("start", $program));

它似乎运行 cmd,而不是 MyProg。

我试过引用以下内容:
my program = "C:\\My Path\\MyProg.exe";
system(("start", '"' . $program . '"'));

但似乎没有任何帮助。

当然,我可以使用 fork() 解决它,但我想了解为什么我不能传递带有空格的路径作为参数。

最佳答案

那是因为内置 start命令在引用时有点奇怪。您可以使用 start "C:\My Path\MyProg.exe" 在命令行上重现此内容。并看到相同的结果。要正确执行它,您需要在它之前使用一组空引号:start "" "C:\My Path\MyProg.exe" .

所以你的最终结果应该是:

my program = "C:\\My Path\\MyProg.exe";
system('start "" "' . $program . '"');

已编辑 包括池上的建议。我的 perl 有点生疏,因为我已经多年没有使用它了。

关于perl - 如何在 Perl 的路径中使用空格启动 Windows 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5681055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com