Esiste un comando di scelta rapida nel prompt dei comandi di Windows per accedere alla home directory dell'utente corrente come in Linux?


104

Sono abituato a usare

cd ~

per accedere direttamente alla 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 di simile in Windows Vista?


7
In Unix, non c'è bisogno della tilde. cdsenza argomenti cambierà nella tua home directory.
Coneslayer

c'era una domanda come questa qui su su, non riesco a trovarla.
Akira,

1
@coneslayer lo so ma per spostare un file da una directory all'altra si usa la tilde.
classificatore

Semplice comecd %userprofile%
subtleseeker l'

È possibile utilizzare Windows Power Shell (su Win XP e versioni successive) che consente di utilizzare ~ per la directory home. Vedi anche ----> stackoverflow.com/questions/9228950/...
franz1

Risposte:


20

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


154

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

Ci sono alcune altre utili variabili disponibili, come %OS%(Sistema operativo) o %WINDIR%(Directory di sistema di Windows). Vedi Wikipedia: Variabili d'ambiente per un elenco.


Note :

In realtà, le cose sono un po 'complicate (come al solito). %HOMEPATH%contiene solo il percorso, senza la lettera di unità, quindi non funzionerà per cding da un'altra unità. È inoltre possibile utilizzare %USERPROFILE%, che fa contenere la lettera di unità, e di solito è la stessa directory %HOMEPATH%.

I valori di queste variabili, e quale è giusto per te, dipenderanno dalla versione di Windows e da eventuali modifiche da parte di un amministratore, poiché i loro valori possono essere diversi (vedi ad esempio la domanda Differenza tra profilo e percorso principale ).


5
Questa è la risposta più corretta, a mio avviso, perché non si basa su percorsi codificati e su eventuali collegamenti stravaganti del file system che potrebbero essere tra di loro.
Ed Orsi,

3
Questa è la risposta corretta
Frederik Krautwald,

Questo mi ha salvato la vita! Dopo aver esaminato molte altre risposte da diverse domande. Ancora! Questo ha funzionato per me e dovrebbe essere contrassegnato come la risposta a questa domanda.
Patricia,

@MissLucy: sono felice che ti abbia aiutato. Accettare una risposta: spetta all'OP decidere. È possibile aggiungere un commento alla domanda per avvisarli.
sleske,

utilizzare invece% USERPROFILE%.
JJS

21

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

Sono altri due personaggi ma ...

SET ~=%HOMEPATH%    
CD %~%

o...

CD %~%\Desktop

O...

doskey ~=cd %homepath%
~

Ovviamente non puoi usarlo ~in percorsi ma come una veloce digitazione " vai a casa mia" ~ Enterè piuttosto veloce.


1
Mi stai prendendo in giro con la cosa da doskey ??? Ora ho una scorciatoia con un solo carattere per qualsiasi cartella in cui mi sento come cd. Questa dovrebbe essere la risposta numero 1.
Andrew,

9

Ho creato un file .cmd in una directory nel mio percorso e l'ho chiamato "cd ~ .cmd". I suoi contenuti sono:

@cd %HOMEPATH%

Quindi posso digitare "cd ~" da qualsiasi luogo per accedere alla mia home directory. Non è lo stesso di "cd ~" (nota lo spazio mancante) ma abbastanza vicino per me.


2
La risposta più intelligente. Combinando la tua con questa risposta di Kenny Evitt si ottiene la soluzione migliore.
Sнаđошƒаӽ

7

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

Se la directory principale è su un'impostazione di condivisione di rete come unità mappata, eseguire quanto segue indipendentemente dall'unità della directory corrente:

cd /D %HOMEDRIVE%%HOMEPATH%

L' /Dinterruttore è necessario per consentire il cdcambio di unità.


5

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

Non esiste un collegamento diretto.

Esistono un paio di soluzioni diverse (vedi sotto).

  1. Utilizzare una variabile di ambiente insieme a cdocd /d

  2. Utilizzare substo net useper creare una mappatura su un'altra lettera di unità.

  3. Installa cygwine usabash

  4. Usa powershell: supporta PowerShell~

L'ultima soluzione è probabilmente la più semplice se sei pronto a usare powershellinvece di cmd.


Soluzione 1: utilizzare una variabile di ambiente insieme a cdocd /d

Se si desidera passare a questa directory su base regolare, eseguire il comando seguente:

setx DOCS %USERPROFILE%

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

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

Per cambiare directory da qualsiasi posizione utilizzare il seguente comando:

cd /d %DOCS%

Se sei già in auto c:puoi 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%

È quindi possibile digitare docsindipendentemente dalla posizione corrente e ti porterà aC:\Users\<current user>


Soluzione 2: utilizzare substo net useper creare una mappatura su un'altra lettera di unità.

Puoi usare subst:

subst x: %USERPROFILE%

E poi

x:

Sfortunatamente i mapping delle unità non persistono tra i riavvii.

net use persisterà tra i riavvii, ad esempio:

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

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


Soluzione 3: installare cygwine utilizzarebash

Puoi prendere in considerazione l'installazione di Cygwin :

Cygwin è:

  • una vasta raccolta di strumenti GNU e Open Source che offrono funzionalità simili a una distribuzione Linux su Windows.

Dopo aver installato Cygwin, è possibile eseguire bashin un terminale Cygwin e impostare la variabile di ambiente bash HOMEcome appropriato.

Le alternative a cygwin includono msys (MingW) :

MSYS è una raccolta di utility GNU come bash, make, gawk e grep per consentire la creazione di applicazioni e programmi che dipendono dagli strumenti UNIX tradizionalmente presenti. Ha lo scopo di integrare MinGW e le carenze della shell cmd.

E Git per Windows :

Git per Windows fornisce un'emulazione BASH utilizzata per eseguire Git dalla riga di comando. * Gli utenti NIX dovrebbero sentirsi a casa, poiché l'emulazione BASH si comporta proprio come il comando "git" negli ambienti LINUX e UNIX.


Soluzione 4: utilizzare powershell

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

cd ~

Ulteriori letture

  • Un indice AZ della riga di comando CMD di Windows - Un riferimento eccellente per tutte le cose relative alla riga cmd di Windows.
  • cd - Cambia directory - Seleziona una cartella (e unità)
  • setx - Imposta le variabili di ambiente in modo permanente, SETX può essere utilizzato per impostare le variabili di ambiente per la macchina (HKLM) o l'utente attualmente connesso (HKCU).
  • subst - Sostituisce una lettera di unità per un percorso di rete o locale.

Se su Powershell ci sono due modi aggiuntivi: cd $HOMEecd $env:HOMEPATH
Dirk Thannhäuser

3

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


Vedo. Ci vuole ancora molto per scrivere% HOMEPATH%. Inoltre non è possibile completarlo automaticamente. Esiste un modo per rendere il mio nome utente uguale a% HOMEPATH% eseguendo un nuovo comando in cmd.exe?
classificatore

1

Se vuoi che tutti i messaggi di richiesta dell'utente vengano avviati nella loro directory "home", crea la seguente chiave di registro come valore stringa espandibile (senza virgolette, ovviamente):

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

Se si desidera solo il vostro comando richiede per farlo:

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

Faccio una pratica per mantenere la cartella ac: \ Scripts in cui tengo un file batch di tipo "autoexec" che invoco tramite questa chiave.


Attenzione, questo romperà Bower e npm (e Visual Studio) ...
Quandary

1

Mi rendo conto che questa è una domanda già da tempo, ma solo per la cronaca. Installa clink, questo estende il tuo prompt dei comandi in molti modi. Sì, è più pesante delle soluzioni precedenti, ma rende la finestra cmd molto più efficiente.


clink == potente modifica della riga di comando in stile Bash per cmd.exe
suspectus

Giusto, e il punto è che ~ si risolve nella directory User \ {user}.
THBBFT,

0

Windows è diventato davvero "Tutto sulla gui", quindi nel tuo caso avrei solo gli strumenti che desideri invece di provare a "piegare" il sistema secondo le tue volontà ... Gli strumenti MinGW sono una piccola raccolta eccellente di alcuni dei strumenti gnu più usati ... Lo consiglio vivamente se sei un fan nix su Win ...

http://www.mingw.org/wiki/MSYS


0

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

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.