我怎样才能让 Perl 6 的 运行 在 Windows 上工作?
How can I get Perl 6's run to work on Windows?
我在 Windows 上和 run
一起玩。用 dir
尝试它不起作用,但也许我遗漏了一些东西:
put '-' x 70;
my $p1 = run 'dir', :out;
put "exit code: {$p1.exitcode}";
put $p1.out.slurp(:close);
put '-' x 70;
my $p2 = Proc.new: :out;
put "exit code: {$p2.exitcode}";
$p2.spawn: 'dir';
$p2.out.slurp(:close).say;
输出只是规则和退出代码行:
----------------------------------------------------------------------
exit code: 1
----------------------------------------------------------------------
exit code: 1
dir
与 shell
一起工作很好,但这是一种不同的做事方式。我可以做到这一点,但这是通过 run
想要避免的 shell:
my $p1 = run 'cmd.exe', '/C', 'dir', :out;
可能是 a bug related to libuv's handling of arguments。 dir
是一个内部的 cmd.exe
命令。我自己对 Windows 不太熟悉,但我认为最好提出一个问题。
这是预期的行为,因为 dir
是一个 shell 命令,而不是可执行文件。
如果您点击 ⊞ Win+R 打开 运行 对话框并输入 dir
,它将因同样的原因而失败(除非您碰巧在路径中的某处有一个不相关的可执行文件 dir.exe
)。
我在 Windows 上和 run
一起玩。用 dir
尝试它不起作用,但也许我遗漏了一些东西:
put '-' x 70;
my $p1 = run 'dir', :out;
put "exit code: {$p1.exitcode}";
put $p1.out.slurp(:close);
put '-' x 70;
my $p2 = Proc.new: :out;
put "exit code: {$p2.exitcode}";
$p2.spawn: 'dir';
$p2.out.slurp(:close).say;
输出只是规则和退出代码行:
----------------------------------------------------------------------
exit code: 1
----------------------------------------------------------------------
exit code: 1
dir
与 shell
一起工作很好,但这是一种不同的做事方式。我可以做到这一点,但这是通过 run
想要避免的 shell:
my $p1 = run 'cmd.exe', '/C', 'dir', :out;
可能是 a bug related to libuv's handling of arguments。 dir
是一个内部的 cmd.exe
命令。我自己对 Windows 不太熟悉,但我认为最好提出一个问题。
这是预期的行为,因为 dir
是一个 shell 命令,而不是可执行文件。
如果您点击 ⊞ Win+R 打开 运行 对话框并输入 dir
,它将因同样的原因而失败(除非您碰巧在路径中的某处有一个不相关的可执行文件 dir.exe
)。