windows - Kode indpakket i enkelte citater i FOR-sætningens `IN`-argument, da kommandoen ikke virker

Indlæg af Hanne Mølgaard Plasc

Problem



På min Windows-pc tager systemet ikke kode indpakket i enkelte citater i FOR-sætningens s IN argument som kommando.


Overvej venligst nedenstående kode.


FOR /F "delims=" \%F IN ('dir *') DO (echo \%F)


Produktion


'dir *' is not recognized as an internal or external command, operable program or batch file.


Her som du kan se systemet tager ikke dir  som kommando, men forsøger at udføre 'dir  *' dvs. inklusiv citat. Hvilket helhed er ikke en kommando.


Jeg bruger Windows 7. Den samme kode arbejder på andre Windows-pc'er. Jeg kan ikke finde ud af, hvilken forskel det gør at dette ikke kører på min maskine.

Bedste reference


Tjek din værdi af ComSpec-variablen. Kommandotolken bruger det til at udføre interne kommandoer. Hvis det ikke er cmd.exe, får du den fejlmeddelelse:


C:Usersklitos>set comspec=xxx

C:Usersklitos>for /f "delims=" \%f in ('dir') do @echo \%f-
'dir' is not recognized as an internal or external command,
operable program or batch file.


For at rette op på det:


C:Usersklitos>set comspec=C:WindowsSystem32cmd.exe

C:Usersklitos>cmd
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:Usersklitos>for /f "delims=" \%f in ('dir') do @echo \%f-
 Volume in drive C is OS-


Når du har identificeret den skurkede bit kode, der angiver comspec til en forkert værdi, skal du rette den til en permanent løsning.