On 2019-11-28 12:57, yary wrote:
One of the clues is the exitcode=1, there is an error coming back.

I think there are two issues which I didn't realize until now
1. DOS command "dir" is a cmd.exe built-in, not its own executable
2. Raku (perl6) "run" takes a list of arguments, not a space-separated command-line

Let's try these (I still don't have my windows machine with me)

perl6 -e "my $proc=run qw[cmd /c dir]; say 'Exit code=', $proc.exitcode;"

C:\NtUtil>perl6 -e "my $proc=run qw[cmd /c dir]; say 'Exit code=', $proc.exitcod
e;"
 Volume in drive C is DRIVE_C
 Volume Serial Number is 3CDF-1B03

 Directory of C:\NtUtil

11/27/2019  20:57    <DIR>          .
11/27/2019  20:57    <DIR>          ..
11/27/2019  19:59    <DIR>          .precomp
07/09/2019  19:02               136 AppendToLogTest.bat
07/09/2019  18:23               805 KillSomeRunningTasks.bat
07/09/2019  18:17                51 ls.bat
05/01/2016  20:02                85 MathTest.bat
05/01/2016  19:59               393 out.txt
07/09/2019  18:12               840 TaskKillAndReboot.bat
05/01/2016  19:59               333 VarTest.bat
               7 File(s)          2,643 bytes
               3 Dir(s)  13,500,203,008 bytes free
Exit code=0



qw[cmd /c dir] is the same as 'cmd', '/c', 'dir'

perl6 -e "my $proc=run qw[cmd /c dir c:/NtUtil]; say 'Exit code=', $proc.exitcode;"


C:\NtUtil>perl6 -e "my $proc=run qw[cmd /c dir c:/NtUtil]; say 'Exit code=', $pr
oc.exitcode;"
Parameter format not correct - "NtUtil".
Exit code=1


perl6 -e "chdir 'c:/NtUtil'; my $proc=run qw[cmd /c dir]; say 'Exit code=', $proc.exitcode;"

C:\NtUtil>perl6 -e "chdir 'c:/NtUtil'; my $proc=run qw[cmd /c dir]; say 'Exit c
de=', $proc.exitcode;"
 Volume in drive C is DRIVE_C
 Volume Serial Number is 3CDF-1B03

 Directory of c:\NtUtil

11/27/2019  20:57    <DIR>          .
11/27/2019  20:57    <DIR>          ..
11/27/2019  19:59    <DIR>          .precomp
07/09/2019  19:02               136 AppendToLogTest.bat
07/09/2019  18:23               805 KillSomeRunningTasks.bat
07/09/2019  18:17                51 ls.bat
05/01/2016  20:02                85 MathTest.bat
05/01/2016  19:59               393 out.txt
07/09/2019  18:12               840 TaskKillAndReboot.bat
05/01/2016  19:59               333 VarTest.bat
               7 File(s)          2,643 bytes
               3 Dir(s)  13,500,186,624 bytes free
Exit code=0



If you want to interpolate variables and still have a space-separated list, use qqw instead of qw. Unix-y example:

perl6 -e 'my $dir="/tmp", my $proc=run qqw[ls $dir]; say $proc.exitcode'

C:\NtUtil>perl6 -e 'my $dir="/tmp", my $proc=run qqw[ls $dir]; say $proc.exitcod
e'
===SORRY!=== Error while compiling -e
Unable to parse expression in single quotes; couldn't find final "'" (correspond
ing starter was at line 1)
at -e:1
------> 'my<HERE><EOL>
    expecting any of:
        single quotes
        statement list
        term


... and now I remember Raku has a "shell" routine that's like "run" but it also creates a shell.

perl6 -e "my $proc=shell 'dir'; say 'Exit code=', $proc.exitcode;"

C:\NtUtil>perl6 -e "my $proc=shell 'dir'; say 'Exit code=', $proc.exitcode;"
 Volume in drive C is DRIVE_C
 Volume Serial Number is 3CDF-1B03

 Directory of C:\NtUtil

11/27/2019  20:57    <DIR>          .
11/27/2019  20:57    <DIR>          ..
11/27/2019  19:59    <DIR>          .precomp
07/09/2019  19:02               136 AppendToLogTest.bat
07/09/2019  18:23               805 KillSomeRunningTasks.bat
07/09/2019  18:17                51 ls.bat
05/01/2016  20:02                85 MathTest.bat
05/01/2016  19:59               393 out.txt
07/09/2019  18:12               840 TaskKillAndReboot.bat
05/01/2016  19:59               333 VarTest.bat
               7 File(s)          2,643 bytes
               3 Dir(s)  13,500,186,624 bytes free
Exit code=0

perl6 -e "chdir 'c:/NtUtil'; my $proc=shell 'dir'; say 'Exit code=', $proc.exitcode;"

C:\NtUtil>perl6 -e "chdir 'c:/NtUtil'; my $proc=shell 'dir'; say 'Exit code=', $
proc.exitcode;"
 Volume in drive C is DRIVE_C
 Volume Serial Number is 3CDF-1B03

 Directory of c:\NtUtil

11/27/2019  20:57    <DIR>          .
11/27/2019  20:57    <DIR>          ..
11/27/2019  19:59    <DIR>          .precomp
07/09/2019  19:02               136 AppendToLogTest.bat
07/09/2019  18:23               805 KillSomeRunningTasks.bat
07/09/2019  18:17                51 ls.bat
05/01/2016  20:02                85 MathTest.bat
05/01/2016  19:59               393 out.txt
07/09/2019  18:12               840 TaskKillAndReboot.bat
05/01/2016  19:59               333 VarTest.bat
               7 File(s)          2,643 bytes
               3 Dir(s)  13,500,186,624 bytes free
Exit code=0

perl6 -e "my $proc=shell 'dir c:/NtUtil' ; say 'Exit code=', $proc.exitcode;"

C:\NtUtil>perl6 -e "my $proc=shell 'dir c:/NtUtil' ; say 'Exit code=', $proc.exi
tcode;"
Parameter format not correct - "NtUtil".
Exit code=1



-y

Hi Yary,

Wow!   Thank you!!!!!

-T


--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Computers are like air conditioners.
They malfunction when you open windows
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Reply via email to