2010-07-28 09:47:26 +0000 2010-07-28 09:47:26 +0000
110
110

C'è un comando rapido nel prompt dei comandi di Windows per arrivare alla home directory dell'utente corrente come c'è in Linux?

Sono abituato a usare

cd ~

per entrare direttamente nella mia home directory. Nel prompt dei comandi di Windows devo fare

cd Users\username

per arrivarci. C'è una scorciatoia come quella di Linux? Sarebbe bello se potessi arrivarci facendo

cd username

È possibile qualcosa del genere in Windows Vista?

Risposte (11)

167
167
167
2010-07-28 10:12:08 +0000

Sì, puoi usare %HOMEPATH%, che è il percorso completo della home directory dell'utente.

Ci sono molte altre variabili utili disponibili, come %OS% (sistema operativo), o %WINDIR% (directory di sistema di Windows). Vedere Wikipedia: Variabili d'ambiente per una lista.


Note:

In realtà, le cose sono un po’ complicate (come al solito). %HOMEPATH% contiene solo il percorso, senza la lettera dell'unità, quindi non funzionerà per cd da un'unità diversa. Puoi anche usare %USERPROFILE%, che contiene la lettera del drive, e di solito è la stessa directory di %HOMEPATH%.

I valori di queste variabili, e quale sia quella giusta per te, dipenderà dalla versione di Windows e da qualsiasi cambiamento da parte di un amministratore, poiché i loro valori possono essere diversi (vedi per esempio la domanda Differenza tra profilo e percorso home ).

23
23
23
2013-01-18 18:26:42 +0000

Altre due opzioni che possono essere aggiunte a uno script ed eseguite automaticamente in modo simile alla risposta di BillP3rd.

Sono due caratteri in più ma…

SET ~=%HOMEPATH%    
CD %~%

oppure…

CD %~%\Desktop

Oppure…

doskey ~=cd %homepath%
~

Naturalmente non puoi usare questo ~ nei percorsi ma come un rapido “salto alla mia home dir” digitando ~ Enter è abbastanza veloce.

19
19
19
2010-07-28 10:47:03 +0000

Puoi sempre mettere un file .bat da qualche parte nel tuo %PATH% che fa il cambio di percorso per te.

9
9
9
2013-05-07 18:33:50 +0000

Ho creato un file .cmd in una directory nel mio percorso, e l'ho chiamato “cd~.cmd”. Il suo contenuto è:

@cd %HOMEPATH%

Così posso digitare “cd~” da qualsiasi posto per arrivare alla mia home directory. Non è la stessa cosa di “cd ~” (notare lo spazio mancante) ma abbastanza vicino per me.

7
7
7
2014-07-31 18:39:22 +0000

risposta di sleske è quasi esattamente giusto, ma non sempre funziona.

Se la tua home directory è su una condivisione di rete impostata come un'unità mappata, esegui quanto segue indipendentemente dall'unità della directory corrente:

cd /D %HOMEDRIVE%%HOMEPATH%

Lo switch /D è necessario per permettere a cd di cambiare unità.

5
5
5
2016-03-04 12:16:07 +0000

C'è una scorciatoia per `C:\Users<current user>### C'è una scorciatoia per ?

Non c'è una scorciatoia diretta.

Ci sono un paio di soluzioni diverse (vedi sotto).

  1. Usa una variabile d'ambiente insieme a cd o cd /d

  2. Usare subst o net use per creare una mappatura su un'altra lettera di unità.

  3. Installare cygwin e usare bash

  4. Usa powershell - powershell supporta ~

L'ultima soluzione è probabilmente la più semplice se sei preparato ad usare powershell invece di cmd.


Soluzione 1: Usa una variabile d'ambiente insieme a cd o cd /d

Se vuoi cambiare questa directory su base regolare allora esegui il seguente comando:

setx DOCS %USERPROFILE%

Questo imposterà permanentemente la variabile d'ambiente DOCS, ma per usarla devi prima avviare una nuova shell cmd, quindi la variabile è definita e pronta all'uso:

F:\test>echo %DOCS%
C:\Users\DavidPostill\

Per cambiare directory da qualsiasi posizione usate il seguente comando:

cd /d %DOCS%

Se siete già sul drive c: potete semplicemente usare:

cd %DOCS%

Crea un file batch (docs.cmd) e mettilo da qualche parte nel tuo PATH.

docs.cmd:

@echo off
cd /d %DOCS%

Puoi poi semplicemente digitare docs indipendentemente dalla tua posizione attuale e ti porterà a C:\Users\<current user>

  • *

Soluzione 2: Usa subst o net use per creare una mappatura ad un'altra lettera di unità.

Puoi usare subst:

subst x: %USERPROFILE%

E poi

x:

Purtroppo le mappature delle unità non persistono attraverso i riavvii.

net use persisterà attraverso i riavvii, per esempio:

net use x: "\computerName\c$\pathName" /persistent:yes

Vedi le risposte in Come rendere la mappatura SUBST persistente attraverso i riavvii? per istruzioni dettagliate.


Soluzione 3: Installare cygwin e usare bash

Si potrebbe considerare l'installazione di cygwin :

Cygwin è:

  • una grande collezione di strumenti GNU e Open Source che forniscono funzionalità simili a una distribuzione Linux su Windows.

Una volta che hai installato cygwin puoi eseguire bash in un terminale cygwin e impostare la variabile d'ambiente bash HOME come appropriato.

Le alternative a cygwin includono msys (MingW) :

MSYS è una raccolta di utilità GNU come bash, make, gawk e grep per permettere la costruzione di applicazioni e programmi che dipendono dalla presenza di strumenti tradizionalmente UNIX. È destinato a integrare MinGW e le carenze della shell cmd.

E Git per Windows :

Git per Windows fornisce un'emulazione BASH usata per eseguire Git dalla linea di comando. *Gli utenti Nixx dovrebbero sentirsi a casa, dato che l'emulazione BASH si comporta proprio come il comando “git” negli ambienti LINUX e UNIX.


Soluzione 4: Usa powershell

Come sottolineato in un commento su un'altra domanda da SBI powershell supporta ~ e puoi semplicemente digitare:

cd ~

Ulteriori letture

  • An A-Z Index of the Windows CMD command line - Un eccellente riferimento per tutto ciò che riguarda la linea cmd di Windows.
  • cd - Cambia directory - Seleziona una cartella (e un'unità)
  • setx - Imposta le variabili d'ambiente in modo permanente, SETX può essere usato per impostare le variabili d'ambiente per la macchina (HKLM) o l'utente attualmente connesso (HKCU).
  • subst - Sostituisce una lettera di unità per un percorso di rete o locale.
3
3
3
2010-07-28 10:01:04 +0000

Non so se è una caratteristica del nostro script di login di lavoro o un default di Windows, ma posso usare cd %HOMEPATH% per ottenere questo, dove HOMEPATH è una variabile d'ambiente.

1
1
1
2010-08-17 00:42:06 +0000

Se volete che i prompt dei comandi di tutti gli utenti inizino nella loro directory “home”, create la seguente chiave di registro come Expandable String Value (senza virgolette, ovviamente):

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun : "cd /d %USERPROFILE%"

Se volete che solo i vostri_ prompt dei comandi lo facciano:

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun : "cd /d %USERPROFILE%"

Io ho l'abitudine di tenere una cartella c:\Scripts in cui tengo un file batch di tipo “autoexec” che invoco tramite questa chiave.

1
1
1
2015-02-20 14:22:33 +0000

Mi rendo conto che questa è una domanda fatta da tempo, ma solo per la cronaca. Installate clink , questo estende il vostro prompt dei comandi in molti modi. Sì, è più pesante delle soluzioni precedenti, ma fa sì che la finestra cmd si comporti molto meglio.

0
0
0
2018-04-04 20:49:33 +0000

Ho usato un terminale migliore cmder ) per questo scopo. Ha costruito degli alias ed è molto facile da usare. Basta leggere la documentazione sugli alias qui .

0
0
0
2012-10-18 08:43:39 +0000

Windows è diventato davvero ‘All about the gui’, quindi nel tuo caso mi procurerei gli strumenti che vuoi invece di cercare di ‘piegare’ il sistema alla tua volontà… Gli strumenti MinGW sono un'eccellente piccola collezione di alcuni degli strumenti gnu più utilizzati … Lo consiglio vivamente se siete fan di nix su Win … http://www.mingw.org/wiki/MSYS