Utilizzando il comando cd nella riga di comando di Windows, non è possibile passare a D: \


226

Questa potrebbe essere una domanda stupida, e penso di aver cercato altrove per trovare la risposta ... Potrebbe essere un problema relativo al percorso, ma quando apro la riga di comando e digito da C:\>:

cd D:\

Non riesco ad accedere all'unità D. Anche se scrivo:

cd D:\<folder name>

Il command.execompleterà automaticamente la riga con il tasto tab, quindi sa dove sono. Semplicemente non stampa per schermare il risultato o effettivamente portarmi lì. Questo problema esiste anche per le unità di rete.

Ora, se uso il comando chdir( cd) in questo modo:

chdir D: o cd d:

Ottengo la stampa da D:\sotto il comando ma dice ancora che sono nel C:\.

Sento che mi manca qualcosa di semplice.


Ho usato pushdal posto di cdpraticamente ovunque in quanto si comporta molto meglio in situazioni come questa.
Goyuix,

5
Visualizza questa risposta " cd / d D: " superuser.com/a/135239/78897
Pacerier

1
Prova questo: cd / dd:
DevWL

Risposte:


324

Tornando ai giorni di DOS, c'è una "directory corrente" separata per ogni unità. cd D:\foldernamecambia la directory corrente di D: nel nome utente specificato, ma non cambia il fatto che stai ancora lavorando C:sull'unità.

Quello che vuoi è semplice:

D:

Qui puoi vedere come funziona la cosa "directory corrente separata per ogni unità":

C:\Users\coneslayer>e:

E:\>c:

C:\Users\coneslayer>cd e:\software

C:\Users\coneslayer>e:

e:\Software>

16
In una situazione di "pistola più veloce in Occidente", il vincitore è colui che fornisce la migliore spiegazione. +1 e elimino la mia risposta simile.
Gnoupi,

2
Anche il mio è stato cancellato. Non è necessario il disordine extra.
th3dude,

3
-1 a) non hai sottolineato che la cd e:\softwarelinea non ha fatto nulla. Come se avessi bloccato un comando CD fantasma lì dentro Perché? Per fargli pensare che stavi usando il CD quando non lo eri? e b) come mai non puoi menzionare l' /dabilitazione del CD in una particolare directory su un altro disco? Ha detto usando il comando cd, così mentre è bene che tu lo abbia sottolineato come può essere fatto senza il comando CD d:<ENTER>, dovresti aver menzionato per anche il comando CD cd /d d:oppurecd /d d:\blah
barlop il

3
@barlop cd E:\softwareNON fa nulla. Cambia la directory corrente della partizione E nella softwarecartella, che è ciò che viene dimostrato quando finalmente si passa alla partizione E con E:. Buon suggerimento con cd / d però.
Miyalys,

@miyalys interessante e ottimo punto
barlop

78

E ha fatto il lavoro, come il comando è progettato per funzionare.

Semplicemente non sai come dovrebbe effettivamente funzionare.

Non stai usando un programma shell Unix o Linux. Il cdcomando nell'interprete dei comandi di Microsoft non si comporta come i cdcomandi in tali shell. Si comporta in modo leggermente diverso. In particolare, non cambia sempre la directory . Nelle shell Unix e Linux, cdimposta sempre e solo la directory di lavoro. Nell'interprete dei comandi di Microsoft, a cdvolte lo interroga. Non esiste un pwdcomando separato , quindi cddue lavori.

Se non gli dai argomenti o un argomento che è solo una lettera di unità e due punti senza un percorso, allora segnala la directory corrente invece di cambiarla . Se non si forniscono argomenti, viene indicata la directory corrente dell'unità corrente del processo dell'interprete dei comandi. Se si fornisce solo una lettera di unità e due punti come argomento, viene indicata la directory corrente del processo dell'interprete dei comandi di tale unità. Ogni unità ha la propria directory corrente nell'interprete dei comandi. (Questa è una finzione gestita dalle librerie di runtime per le implementazioni di Microsoft e di altri fornitori di vari linguaggi di programmazione. Win32 stesso non funziona in questo modo.)

Quindi, quando lo hai fornito d:come argomento, ti ha riportato la directory corrente del processo dell'interprete dei comandi sull'unità D, che è accaduto D:\. Se non gli avessi dato alcun argomento, te lo avrebbe riferito C:\.

Se si desidera che il cdcomando sia sempre in modalità impostata e mai in modalità query, è necessario aggiungere l' /Dopzione ad esso. Ciò impone che il comando sia sempre in modalità impostata e lo estende anche in modo da modificare l'unità corrente e modificare la directory corrente di un'unità. (In altre parole, funziona più come l'API Win32 sottostante in realtà.)

Quindi, ad esempio, la riga di comando

cd / dd:
cambierà la directory a qualunque sia la directory corrente sull'unità D e cambierà anche l'unità corrente sull'unità D.

Se si desidera modificare diversamente il processo corrente dell'interprete dei comandi 'unità corrente, il cdcomando non è il modo. Puoi farlo semplicemente digitando la lettera di unità e i due punti:

d:

Ulteriori letture

  • JP Software (2011). Guida in linea di CD / CHDIR TCC.
  • Microsoft Corporation (2001). Chdir (CD) . TechNet Windows XP Riferimento da riga di comando A – Z.


3
Non del tutto giusto. Se lo fai cd d:\ cambia la directory di lavoro su d:. Se lo fai d:\ dopo sarà a d:\ . Se non fai cd d:\something\somethingnulla accadrà all'inizio. Ma se lo fai d:\ dopo, il tuo percorso sarà d:\something\something"!
sinni800,

4
Nessuno dei quali contraddice in alcun modo ciò che è scritto sopra sinni800(a parte il fatto che tu abbia sbagliato la sintassi per cambiare l'unità attuale, cioè, ma la trascurerò). Non ho incluso la discussione di ciò che accade quando si fornisce un nome di percorso in una discussione perché (a) non è di questo che si tratta e (b) è nella lettura successiva.
JdeBP,

6
No, non lo siamo. Sarebbe sbagliato parlare di partizioni invece di unità qui, user unknown. Per cominciare, le partizioni non sono uguali ai volumi e le lettere di unità vengono mappate sui volumi, non sulle partizioni. E quando si parla a questo livello di astrazione, lettera di unità e unità corrente sono i termini convenzionali, come usati qui, nelle successive letture indicate e persino nel cd /?testo di aiuto.
JdeBP,

2
Ho usato questo comando per almeno 20 anni e non l'ho mai saputo.
Chris Ballance

54

Temo che non sia corretto. È vero dai tempi di DOS, ma la riga di comando in Windows NT e successivi non è DOS. Nella riga di comando che tutti usano oggi, hai l'opzione / D. L'opzione / d cambierà la directory corrente dell'unità specificata E cambierà in quella directory. L'opzione / d deve essere specificata prima del percorso. Per esempio:

C:\> cd /d D:\foo\bar\
D:\foo\bar\>

prompt dei comandi di windows cd


4
+1 perché ho imparato qualcosa di nuovo, ma non credo che tutto ciò che ho scritto sia errato.
Coneslayer il

3
Anche la tua risposta è corretta, Multiverse IT, ma coneslayer non era errato. Grazie per il tuo impegno. Ho imparato due grandi trucchi su questa domanda.
Nicorellius,

2
Dal mio punto di vista "Quello che vuoi è semplice ... D:" non è corretto. Sì, funziona ed è un metodo valido per raggiungere l'obiettivo, ma non è, a rigor di termini, ciò che dovrebbe desiderare. Inoltre, il modo in cui il commento è formulato implica che non è possibile utilizzare CD per fare ciò - tale implicazione è errata.
Multiverso IT

1
il suo problema principale è "Non riesco ad accedere all'unità D.". Pertanto, l'altra risposta è corretta. La tua soluzione richiede semplicemente un passo in meno (il che è buono). Non rende l'altro errato.
Gnoupi,

1
Hmm, "quello che dovrebbe volere". Sembra piuttosto presuntivo ;-)
Nicorellius,

20

CD sta per C hange D irectory, e non guidare il cambiamento. Quindi non cambierebbe in D: così. Per raggiungere questo obiettivo dovresti semplicemente digitare la lettera di unità

per esempio

d:


16
cd / DD: cambia unità e directory ...
Michael S.

Ma d: è una partizione, non un'unità.
utente sconosciuto

1
@userunknown Nell'era di Dos 1.0, quando la shell è stata progettata, c'erano solo floppy disk che AFAIK non poteva essere partizionato. Il supporto dell'hard disk iniziale era solo per la (prima) partizione primaria su un'unità. Il supporto per le partizioni estese non è stato aggiunto fino a dopo.
Dan Neely,

Non vedo un tag MS-DOS 1.0, né 1.0 menzionato. Forse non è possibile partizionare un'unità con programmi MS-DOS, ma è possibile installare un MS-DOS su un'unità partizionata. Immagino che MS-DOS non sia supportato, e il tag è lì, perché molti utenti credono che cmd.exe e MS-DOS significino lo stesso, che è un altro errore da affrontare. A proposito: MS-DOS 1.0 non è mai stato pubblicato.
utente sconosciuto

1
@userunknown Le decisioni di progettazione risalgono alle versioni iniziali di DOS. La modifica del comportamento avrebbe interrotto i programmi precedenti (vedere il commento di Daniel Beck di seguito). PS; secondo Wikipedia MS DOS 1.x è stato pubblicato.
Dan Neely,

9

La directory di lavoro in cmd.exe viene gestita su volume-by-volumebase; la directory di lavoro per l' C:unità è diversa dalla directory di lavoro per l' D:unità.

Quando si passa solo una lettera di unità a cd, verrà stampata la directory di lavoro per l'unità specificata.

Nel tuo caso, la directory di lavoro del D:disco è la radice volume stesso, D:\.

Per cambiare volumi da C:a D:è sufficiente inserire la lettera di unità:

C:\>D:
D:\>

2
cd / DD: cambia unità e directory ...
Michael S.

1
Le partizioni sono mappate su una lettera di unità e sono praticamente le stesse di un'unità. È inoltre possibile mappare una directory o condividere su un'unità e si comportano allo stesso modo.
Marty Fried,

8

Usa cd / DD: per fare questo. Puoi anche specificare i percorsi.


5

Se si desidera modificare l'unità in un prompt dei comandi DOS, è sufficiente scrivere:

[Drive Letter]:

Ad esempio, se si desidera passare all'unità D: \, è necessario digitare quanto segue nel prompt dei comandi:

D:

Cambiate la partizione con [Drive Letter]:, credetemi o provatela!
utente sconosciuto dal

Oh wow, questo rende le cose molto più facili. Lo dimentico sempre, /dquindi questo rende il passaggio molto più veloce.
Mateen Ulhaq,

2

pushdfunziona anche quando è necessario accedere alla directory secondaria, ad es D:\Tests\Logs.

Usalo così:

pushd D:\Tests\Logs

Se vuoi tornare alla directory precedente usa popd:

C:\Users>pushd D:\Tests\Logs
D:\Tests\Logs>popd
C:\Users>

0

Durante la ricerca dell'opzione nella barra degli strumenti e la ricerca di cmd o selezionando Windows Tutte le app selezionando il prompt dei comandi, passa a qualche altro prompt dei comandi. Invece prova a premere il tasto Windows + R e cerca cmd che ci vuole in C:> drive. Da lì puoi navigare verso D:> o ovunque tu abbia bisogno

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.