Update - bessere Version 18. Juli 2019.
Abschließende Zusammenfassung: Obwohl ich für die meisten Windows-Konsolenarbeiten ohnehin zu Powershell übergegangen bin, mich aber entschlossen habe, dieses alte Cmd-Problem zu lösen, musste ich mich heute auf eine Cmd-Konsole setzen, und das Fehlen dieser Funktion hat mich wirklich beeindruckt. Dieser funktioniert schließlich auch mit Leerzeichen, bei denen meine vorherige Antwort fehlschlagen würde.
Darüber hinaus kann dieser jetzt auch ~ als Präfix für andere Home-Unterordner verwenden und auch Schrägstriche in Schrägstriche umtauschen. Hier ist es also;
Schritt 1. Erstellen Sie diese Doskey- Makros, die bei jedem Start von cmd irgendwo abgeholt werden.
DOSKEY cd=cdtilde.bat $*
DOSKEY cd~=chdir /D "%USERPROFILE%"
DOSKEY cd..=chdir ..
Schritt 2. Erstellen Sie die Datei cdtilde.bat und fügen Sie sie irgendwo in Ihren PATH ein
@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%"
Gut getestet mit;
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, es erlaubt auch ein verzögertes Zitieren, was ich nützlich fand, selbst wenn Leerzeichen in den Ordnerpfadnamen sind, da alle Argumente so umbrochen werden, als wäre es eine lange Zeichenfolge. Das heißt, nur ein erstes Zitat funktioniert auch oder ganz ohne Anführungszeichen.
Alle anderen Dinge unten können jetzt ignoriert werden, sie bleiben aus historischen Gründen übrig - also mache ich nicht wieder dieselben Fehler
altes Update 19. Oktober 2018.
Falls jemand anderes meinen Ansatz ausprobiert hat, hat meine ursprüngliche Antwort unten keine Leerzeichen behandelt, z. B. ist Folgendes fehlgeschlagen.
> cd "c:\Program Files"
Files""]==["~"] was unexpected at this time.
Ich denke, es muss einen Weg geben, das zu lösen. Werde wieder posten, wenn ich meine Antwort verbessern kann. (siehe oben, ich habe endlich alles so zum Laufen gebracht, wie ich es wollte.)
Meine ursprüngliche Antwort brauchte noch Arbeit ... 7. Oktober 2018.
Ich habe heute nur versucht, es zu tun, und ich glaube, ich habe es verstanden. Ich denke, das funktioniert gut.
Erstens einige Doskey- Makros;
DOSKEY cd=cdtilde.bat $*
DOSKEY cd~=chdir /D "%USERPROFILE%"
DOSKEY cd..=chdir ..
und dann eine Fledermausfeile auf meinem Weg;
cdtilde.bat
@echo off
if ["%1"]==["~"] (
chdir /D "%USERPROFILE%"
) else (
chdir /D %*
)
All dies scheint gut zu funktionieren;
cd ~ (traditional habit)
cd~ (shorthand version)
cd.. (shorthand for going up..)