2011-02-28 18 views
71

Ho bisogno di aiuto per scrivere un file batch. Ho un percorso memorizzato in una radice variabile come segue:Come modificare la directory di lavoro corrente utilizzando un file batch

set root=D:\Work\Root 

Poi sto cambiando la mia directory di lavoro di questa radice come segue:

cd %root% 

Quando eseguire questo file batch da qualsiasi punto del D guidare questo è fatto con successo. Ma quando eseguo lo stesso file batch da qualche altra unità, cd% root% non funziona.

C'è un modo per ottenere la lettera di unità dalla variabile root? Posso quindi modificare la directory corrente su questa unità prima e quindi cd% root% funzionerà.

risposta

109

Specificare /D per modificare anche l'unità.

CD /D %root% 
+0

Altre risposte dicono '\ d' (minuscolo) c'è una differenza tra una? L'opzione è solo case-sensitive? – josch

+2

@josch: Sì, se stiamo parlando dei comandi interni di CMD, quindi cambiare i parametri come '/ D' sopra sono case-insensitive ('/D' = '/ d'), proprio come i comandi stessi (' CD' = 'cd'). Credo che sia vero anche per tutte le utility da riga di comando esterne di Windows (come 'FINDSTR',' SORT' ecc.). Gli strumenti di terze parti, d'altra parte, possono usare i parametri case-sensitive. –

33

Basta usare cd /d %root% per cambiare le lettere del driver e cambiare directory.

In alternativa, utilizzare pushd %root% per passare le lettere di unità quando si cambiano le directory e per memorizzare la directory precedente su una pila in modo da poter utilizzare popd per tornare indietro.

Nota che pushd consente inoltre di modificare le directory in una condivisione di rete. Effettuerà automaticamente il mapping di un'unità di rete, quindi annullerà la mappatura quando eseguirai il popd per quella directory.

13

Prova questa

chdir /d D:\Work\Root 

Godetevi il tifo;)

+4

Rooting? Cosa significa questo in questo contesto? –

+3

@MathiasLykkegaardLorenzen Tornando alla radice, come riferimento alla domanda posta, sembra che ti sia sfuggito –

+0

Va notato che prima e dopo la directory "dovrebbe essere messo così; chdir/d" D: \ Work \ Root " –

Problemi correlati