/ Forside / Teknologi / Udvikling / Perl / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
Open process with space.
Fra : Henrik Wendt


Dato : 10-07-01 15:09

Hejsa

Jeg prøver at køre nedenstående med ActiveState perl på en Windows NT

$prog="D:/temp/New Folder/cvs";
open CVSIN, "$prog status $ARGV[0]|" or die "Can't open $prog ";
while (<CVSIN>) {
my ($myrev) = /Working revision:\s(\d+\.\d+)/ ;
$rev = $myrev if $myrev ;
}

men får fejlen:
The name specified is not recognized as an internal or external command,
operable program or batch file.

flytter jeg derimod programfilen til
$prog="D:/temp/cvs";
er der ingen problemer.

Er der nogen der kan hjælpe, jeg tror det har noget med mellem rummet i
filepathen at gøre

Hilsen

Henrik



 
 
Peter Makholm (10-07-2001)
Kommentar
Fra : Peter Makholm


Dato : 10-07-01 15:27

"Henrik Wendt" <hwendt@premitech.com> writes:

> Jeg prøver at køre nedenstående med ActiveState perl på en Windows NT

Nu bruger jeg godt nok ikke Windows men linux, men jeg kan
fremprovokerer en ligende fejl.

Jeg laver et lille script, det spytter noget uddata ud:

---cut
#!/bin/sh
echo "bar"
echo $1
echo "bar"
echo $2
echo "bar"
---cut

Det vil sige at den skrive foerste og andet argument ud omgivet af
linjer hvorpaa der staar bar.

Kalder jeg scriptet foo kan jeg koere foelgende perlscript:

pma-20% perl -e "open FH, qq{/tmp/foobar/foo xyzzy plugh|}; print <FH>;"
bar
xyzzy
bar
plugh
bar
pma-20%


Kalder jeg ovenstaaende scrippt for "pjattet navn" gaar det
selvfoelgeligt galt:

pma-20% perl -e "open FH, qq{/tmp/foobar/pjattet navn xyzzy plugh|}; print <FH>;"
pma-20%

Det er det du oplever. Jeg kalder bare ikke die, saa jeg faar ikke en
paen fejlmeddelse. Jeg kan tilsyneladende loese problemet saaledes:

pma-20% perl -e "open FH, qq{'/tmp/foobar/pjattet navn' xyzzy plugh|}; print <FH>;"
bar
xyzzy
bar
plugh
bar
pma-20%


Saa proev om ikke foelgende kodestump virker for dig:

$prog="D:/temp/New Folder/cvs";
open CVSIN, "'$prog' status $ARGV[0]|" or die "Can't open $prog ";
while (<CVSIN>) {
my ($myrev) = /Working revision:\s(\d+\.\d+)/ ;
$rev = $myrev if $myrev ;
}


--
Jeg svarede ikke på dit spørgsmål, vel?

Nezar Nielsen (11-07-2001)
Kommentar
Fra : Nezar Nielsen


Dato : 11-07-01 02:17

"Henrik Wendt" <hwendt@premitech.com> wrote in message
news:T%D27.1806$6x5.222141@news000.worldonline.dk...
> Hejsa
>
> Jeg prøver at køre nedenstående med ActiveState perl på en Windows NT
>
> $prog="D:/temp/New Folder/cvs";
> open CVSIN, "$prog status $ARGV[0]|" or die "Can't open $prog ";
....
> men får fejlen:
> The name specified is not recognized as an internal or external command,
> operable program or batch file.
....
> Er der nogen der kan hjælpe, jeg tror det har noget med mellem rummet i
> filepathen at gøre

Yup, du skal escape det med backslash,

$prog="D:/temp/New\ Folder/cvs";

--
Mvh. Nezar Nielsen
http://fez.dk/




Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste