Risposte:
È possibile %HOMEDRIVE%%HOMEPATH%
per l'unità + \docs settings\username
o \users\username
.
È possibile utilizzare %systemdrive%%homepath%
la variabile di ambiente per ottenere questo risultato.
Le due variabili di comando concatenate forniscono il percorso della directory home dell'utente desiderato come indicato di seguito:
L'esecuzione echo %systemdrive%
sul prompt dei comandi fornisce:
C:
L'esecuzione echo %homepath%
sul prompt dei comandi fornisce:
\Users\<CurrentUserName>
Se usato insieme diventa:
C:\Users\<CurrentUserName>
%systemdrive%
la variabile d'ambiente che è equivalente a quella %homedrive%
menzionata da Alex. Ti prego di darmi il tuo feedback su questo se trovi qualcosa di sbagliato.
Aggiornamento - versione migliore 18 luglio 2019.
Riepilogo finale, anche se sono passato a PowerShell per la maggior parte dei lavori su console Windows, ma ho deciso di concludere questo vecchio problema di cmd, oggi ho dovuto salire su una console di cmd e la mancanza di questa funzionalità mi ha davvero colpito. Questo finalmente funziona anche con gli spazi, dove la mia risposta precedente avrebbe fallito.
Inoltre, questo ora è anche in grado di usare ~ come prefisso anche per altre sottocartelle domestiche, e scambia anche le barre in avanti con quelle posteriori. Quindi eccolo qui;
Passaggio 1. Creare queste macro doskey , da qualche parte vengono raccolte ogni volta che si avvia cmd.
DOSKEY cd=cdtilde.bat $*
DOSKEY cd~=chdir /D "%USERPROFILE%"
DOSKEY cd..=chdir ..
Passaggio 2. Creare il file cdtilde.bat e inserirlo in qualche punto del PERCORSO
@echo off
set dirname=""
set dirname=%*
set orig_dirname=%*
:: remove quotes - will re-attach later.
set dirname=%dirname:\"=%
set dirname=%dirname:/"=%
set dirname=%dirname:"=%
:: restore dirnames that contained only "/"
if "%dirname%"=="" set dirname=%orig_dirname:"=%
:: strip trailing slash, if longer than 3
if defined dirname if NOT "%dirname:~3%"=="" (
if "%dirname:~-1%"=="\" set dirname="%dirname:~0,-1%"
if "%dirname:~-1%"=="/" set dirname="%dirname:~0,-1%"
)
set dirname=%dirname:"=%
:: if starts with ~, then replace ~ with userprofile path
if %dirname:~0,1%==~ (
set dirname="%USERPROFILE%%dirname:~1%"
)
set dirname=%dirname:"=%
:: replace forward-slashes with back-slashes
set dirname="%dirname:/=\%"
set dirname=%dirname:"=%
chdir /D "%dirname%"
Testato bene con;
cd ~ (traditional habit)
cd~ (shorthand version)
cd.. (shorthand for going up..)
cd / (eg, root of C:)
cd ~/.config (eg, the .config folder under my home folder)
cd /Program Files (eg, "C:\Program Files")
cd C:/Program Files (eg, "C:\Program Files")
cd \Program Files (eg, "C:\Program Files")
cd C:\Program Files (eg, "C:\Program Files")
cd "C:\Program Files (eg, "C:\Program Files")
cd "C:\Program Files" (eg, "C:\Program Files")
Oh, inoltre, consente la citazione pigra, che ho trovato utile, anche quando gli spazi sono nei nomi dei percorsi delle cartelle, poiché avvolge tutti gli argomenti come se fosse una stringa lunga. Il che significa che funziona anche solo una citazione iniziale o funziona anche completamente senza virgolette.
Tutte le altre cose qui sotto possono essere ignorate ora, è lasciato per motivi storici - quindi non commetto più gli stessi errori
vecchio aggiornamento del 19 ottobre 2018.
Nel caso in cui qualcun altro abbia provato il mio approccio, la mia risposta originale di seguito non ha gestito gli spazi, ad esempio il seguente non è riuscito.
> cd "c:\Program Files"
Files""]==["~"] was unexpected at this time.
Penso che ci debba essere un modo per risolverlo. Pubblicherò di nuovo se posso migliorare la mia risposta. (vedi sopra, finalmente ho fatto funzionare tutto come volevo.)
La mia risposta originale,
avevo ancora bisogno di lavoro ... 7 ottobre 2018. Stavo solo provando a farlo oggi, e penso di averlo ottenuto, questo è quello che penso funzioni bene;
Innanzitutto, alcune macro doskey ;
DOSKEY cd=cdtilde.bat $*
DOSKEY cd~=chdir /D "%USERPROFILE%"
DOSKEY cd..=chdir ..
e poi un file bat nel mio percorso;
cdtilde.bat
@echo off
if ["%1"]==["~"] (
chdir /D "%USERPROFILE%"
) else (
chdir /D %*
)
Tutti questi sembrano funzionare bene;
cd ~ (traditional habit)
cd~ (shorthand version)
cd.. (shorthand for going up..)
.bashrc
file di tipo: superuser.com/questions/144347/… . Inserendo il passaggio 1. da questa risposta nel bashrc.bat
file verrà impostato all'avvio.
Puoi fare quasi lo stesso da solo. Apri Variabili d'ambiente e fai clic sul pulsante "Nuovo" in "Variabili utente per ...".
Nome variabile: ~
Valore variabile: fare clic sul pulsante "Sfoglia directory ..." e scegliere la directory desiderata.
E dopo questo, apri cmd e digita questo:
cd% ~%
. Funziona.
Ho appena provato set ~=%userprofile%
e funziona anche se vuoi continuare a usare la stessa abitudine
È quindi possibile utilizzare %~%
invece.
~
= %userprofile%
? Ho eseguito il comando esatto menzionato nel tuo post sul prompt dei comandi ma genera errore - '~' is not recognized as an internal or external command, operable program or batch file.
. Puoi per favore elaborare la tua risposta un po 'di più?
set ~=%userprofile%
, puoi usarlo %~%
per la variabile
Ha appena scritto uno script per farlo senza troppa battitura, pur mantenendo la portabilità come l'impostazione ~
di essere %userprofile%
le esigenze di una configurazione manuale su ogni PC Windows mentre la clonazione e l'impostazione della directory come parte del PATH
è meccanico.
Semplicemente
Primo Definisci percorso
doskey ~=cd %homepath%
Quindi accedere
~
Puoi anche fare cd ...... \ quante volte ci sono cartelle che ti portano nella directory home. Ad esempio, se sei in cd: \ windows \ syatem32, allora cd .... \ ti porta a casa, ovvero c: \
C:\Users\username
cartella (o c:\Documents and Settings\username
nelle precedenti Windows)
C:\
, si consiglia piuttosto di utilizzare cd \
invece di un numero indefinito dicd ..\..\..