windows - for/f lukker CMD prompt straks

Indlæg af Hanne Mølgaard Plasc

Problem



Når jeg åbner cmd.exe og skriver den første linje og trykker ENTER, fungerer det fint. Når jeg indtaster den anden linje og trykker ENTER, lukker den straks.


Jeg kan ændre ('a') til ('asdfgh') så samme problem. eller\% q til\% f samme problem.


Forskellen er/f, af en eller anden grund forårsager FOR/F med ('......') cmd.exe at lukke.


Dette sker på et af mine systemer og ikke en anden


C:>for \%q in ('a') do echo \%q   <ENTER>

C:>echo 'a'
'a'

C:>for /f \%q in ('a') do echo \%q <ENTER>

Bedste reference


Denne fyr synes at have løst et meget lignende problem med succes:


for/f lukker cmd vindue med det samme [5]


Problemet viste sig i den forbindelse at have at gøre med COMSPEC miljøvariablen, idet den oprindeligt er forkert indstillet, som det ser ud til. Fyren søgte at logge ud af Windows-kontoen og tilbage i.

Andre referencer 1


Tilføj en parantes '(', som denne:


for \%q in ('a') do (


Det vil bede dig om en 'Mere?' i de følgende linjer, indtil du beslutter at lukke din for blok med en ')'

Andre referencer 2


Ser du på hjælpen til 'FOR' ('FOR/?'), Kan du se, at '/F' -indstillingen er til at analysere filindgang og har følgende muligheder:


FOR /F ["options"] \%variable IN (file-set) DO command [command-parameters]
FOR /F ["options"] \%variable IN ("string") DO command [command-parameters]
FOR /F ["options"] \%variable IN ('command') DO command [command-parameters]


Bemærk at sidste indtastning ... en enkelt citeret værdi behandles som en kommando, der skal køre, og udgangen af ​​den kommando er, hvad 'FOR' parserer.


Måske har du en 'a' kommando/eksekverbar på en maskine, men ikke på den anden?


Du bør kun bruge '/F' -flagget, hvis du specifikt vil have den adfærd, som '/F' leverer.