2014-07-16 12 views
5

Quando sto facendo funzionare il seguente lotto dentro ....Il nome del file, nome della directory o sintassi dell'etichetta di volume non è corretto in lotti all'interno

set PATH='C:\Users\DEB\Downloads\10.1.1.0.4' 
cd !PATH! 

ricevo errore "Il nome del file, nome della directory o sintassi dell'etichetta di volume è errato "

Aggiornamento: ci sono le soluzioni che ha funzionato per me.

  • Non utilizzare PATH come nome var
  • impostarlo come "myPATH=C:\Users\DEB DAS\Downloads\10.1.1.0.4"
+2

che dovrebbe essere 'cd% PATH%' ed è necessario racchiudere il valore tra virgolette '" 'virgolette non singole Ma vorrei vivamente di scoraggiare l'utilizzo dei nome di variabile -. Ha aa significato molto speciale –

risposta

7
set myPATH="C:\Users\DEB\Downloads\10.1.1.0.4" 
cd %myPATH% 
  • Le virgolette non indicano una stringa, fanno si inizia: 'C:\ invece di C:\ so

  • %name% è la sintassi normale per l'espansione di una variabile, la sintassi !name! deve essere abilitata utilizzando prima il comando setlocal ENABLEDELAYEDEXPANSION oppure eseguendo il prompt dei comandi con CMD /V:ON.

  • Non utilizzare PATH come nome, è un nome di sistema che contiene tutte le posizioni dei programmi eseguibili. Se lo sovrascrivi, i bit casuali del tuo script smetteranno di funzionare. Se si intende cambiarlo, è necessario eseguire set PATH=%PATH%;C:\Users\DEB\Downloads\10.1.1.0.4 per mantenere il contenuto PATH corrente e aggiungere qualcosa alla fine.

+2

+1 ma la sintassi '! Name!' Può essere utilizzata ovunque dopo un 'setlocal ENABLEDELAYEDEXPANSION' e non solo all'interno di loop. – foxidrive

+0

@foxidrive così può. Ho provato che al prompt dei comandi e non ha funzionato, quindi Ho pensato che non fosse possibile, ma l'ho ritentato in un file batch, e sì in quel contesto funziona. Aggiungerò il mio post - grazie. – TessellatingHeckler

Problemi correlati