Как мне заставить Perl 6 работать на Windows? - PullRequest
0 голосов
/ 26 апреля 2018

Я играю с run в Windows.Попытка с 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 хочет избежать:

my $p1 = run 'cmd.exe', '/C', 'dir', :out;

Ответы [ 2 ]

0 голосов
/ 26 апреля 2018

Это ожидаемое поведение, учитывая, что dir является командой оболочки, а не исполняемым файлом.

Если вы нажмете ⊞ Win + R , чтобы открыть запуски введите dir, произойдет сбой по той же причине (если только у вас не окажется несвязанного исполняемого файла dir.exe где-то на вашем пути).

0 голосов
/ 26 апреля 2018

Это может быть ошибка, связанная с обработкой аргументов в libuv dir является внутренней cmd.exe командой.Я не слишком знаком с Windows, но думаю, что лучше подать вопрос.

...