Ich möchte ls in der Windows-Eingabeaufforderung verwenden und den Befehl dir ausführen lassen.
Wie kann ich das machen?
Ich möchte ls in der Windows-Eingabeaufforderung verwenden und den Befehl dir ausführen lassen.
Wie kann ich das machen?
Antworten:
Du könntest:
ls.bat
und lassen Sie sie nur den dir
Befehl enthaltenls.bat
Datei vorhanden ist, zu Ihrer PATH
Umgebungsvariablen hinzuSie können dann ls
an einer Eingabeaufforderung ausführen .
ls dir
? Ich denke , man müßte das ändern ls.bat
args zu handhaben ... oder Sie könnten versuchen Aliase: superuser.com/questions/49170/create-an-alias-in-windows-xp
Sie können diese Frage mit einem einfachen Befehl lösen:
echo @dir %* > %systemroot%\system32\ls.bat
Stellen Sie sicher, dass Sie zuerst cmd.exe
als Administrator ausgeführt werden, wenn Sie sich in Vista und höher befinden
dir %*
stattdessen zu verwenden, damit eine beliebige Anzahl von Befehlszeilenargumenten über ls.bat an dir übergeben werden kann. Andernfalls dir %1
können Sie bei Verwendung des ls-Skripts höchstens ein Argument verwenden.
@dir %*
auch die zusätzliche Zeile entfernt, so dass es noch identischer ist mitdir
@
; Eine raffinierte Syntax, um ein Durcheinander der Ausgabe zu vermeiden. Es wäre jedoch viel einfacher, wenn Windows POSIX-kompatibel wäre. Zumindest können wir träumen.
Es ist eine alte Frage, aber fürs Protokoll:
http://gnuwin32.sourceforge.net/packages/coreutils.htm
Gibt dir ls und noch viel mehr!
ls *
und dir *
mache nicht das Gleiche, also ist Aliasing Dir ein bisschen Hosen.
C:\Program Files (x86)\GnuWin32\bin
, Ihrem Pfad hinzuzufügen
Der einfachste Weg, den ich gefunden habe, ist:
bin
Verzeichnis von Git zu Ihrer Pfadvariablen hinzu. Meins befand sich in C:\Program Files\Git\usr\bin
.ls
ganze Pracht.ls
aller optionalen Argumente bietet . Nur ein kleines Update, ich habe die neueste Version von Git für Windows installiert und die ls.exe kann jetzt in C: \ Programme \ Git \ usr \ bin
Ich habe eine Lösung, aber es ist schmutzig:
Erstellen Sie eine Datei mit dem Namen ls.bat, die nur "dir" enthält.
Legen Sie es in C: \ windows \ system32 (oder einem beliebigen Verzeichnis in PATH env var) ab.
Das (sollte) funktioniert!
Bearbeiten: Etwas konsistenteres: /superuser/49170/create-an-alias-in-windows-xp
Wenn Sie Node.js auf Ihrem System installiert haben , können Sie es aus Cash installieren , einer Bibliothek, die ich für Linux-Befehle unter Windows geschrieben habe:
npm install cash-ls -g
npm install cash-global -g
. Wäre toll ls -l
als ll
(LL) auch hinzuzufügen .
Die Windows-Eingabeaufforderung für Vista / 7 ermöglicht symbolische NTFS-Links. Führen Sie dann cmd.exe als Administrator aus:
mklink ls %System%\dir.exe
Richten Sie dann Ihre PATH-Umgebungsvariable so ein, dass sie den Speicherort des gerade erstellten Links enthält.
Wenn Sie mehr als nur den Befehl 'ls' möchten, sollten Sie sich mit cygwin befassen .
EDIT- Nur realisiert dir.exe
ist kein separates Programm, also funktioniert das nicht wirklich. Aber mklink
und Cygwin sind gute Dinge zu wissen.
+1 im obigen Beitrag, in dem vorgeschlagen wird, git für Windows zu installieren und das Verzeichnis bin zu Ihren Pfadvariablen hinzuzufügen.
Auf andere Weise habe ich touch, ls und viele andere UNIX-Befehle erhalten, die in cmd.exe auf meinen Windows 8- und Windows 7-Computern funktionieren.
Gehen Sie zur folgenden Site, um Cygwin zu installieren
https://www.cygwin.com/install.html
Installieren Sie die 32- oder 64-Bit-Version für Ihr System. Die Standardeinstellungen und Pakete sollten das enthalten, was Sie benötigen, damit Sie nichts ändern müssen, sobald Sie zum Paketbildschirm gelangen.
Kopieren Sie nach der Installation den Cygwin-Ordnerpfad in Ihre Umgebungspfadvariablen. Beispielsweise; Wenn Sie cygwin in C: \ Cygwin installiert haben, fügen Sie Ihren Umgebungssystempfadvariablen Folgendes hinzu:
; C: \ Cygwin \ bin
Auf meinem System habe ich die 64-Bit-Version installiert und der Standardordnername und -pfad war C: \ cygwin64. Daher habe ich meinen Pfadvariablen für die Systemumgebung Folgendes hinzugefügt:
; C: \ cygwin64 \ bin
Starten Sie Ihr Terminal neu, wenn es geöffnet ist. Geben Sie dann ls ein und Sie sehen eine Verzeichnisliste.
Beachten Sie Folgendes, wenn Sie mit dem Festlegen von PATH-Umgebungsvariablen nicht vertraut sind:
Wenn Sie nur möchten, dass cmd ls
als Alias für erkannt wird dir
, können Sie den doskey
Befehl verwenden (aus dieser Antwort im Superuser ).
Dies ändert nichts an der ursprünglichen Behandlung der Befehlszeilenparameter des Befehls dir.
Sie können auch cygwin verwenden und den Befehl ls direkt zusammen mit allen anderen Unix-Befehlszeilentools verwenden, an die Sie möglicherweise gewöhnt sind .
Ich empfehle das folgende Rezept.
DOSKEY
und $*
, um Ihren ls
Befehl zu erstellen .Beispielsweise kann Ihr Befehl
DOSKEY ls=dir
DOSKEY sublime="C:\Program Files\Sublime Text 2\sublime_text" $*
$*
für Befehle, die Argumente annehmen, nützlich sein. Zum Beispiel möchte ich hier in der Lage sein zu tun sublime my_code.c
.
Die Registrierung für cmd befindet sich unter HKEY_CURRENT_USER -> Software -> Microsoft -> Befehlsprozessor. Erstellen Sie einen Eintrag mit Zeichenfolgenwert namens AutoRun mit dem vollständigen Pfad der Datei (nicht des enthaltenen Ordners), z %USERPROFILE%\custom_command.cmd
. Jedes Mal, wenn cmd ausgeführt wird, wird Ihr Befehl geladen!
Sie können der Batch-Datei auch weitere nützliche Dinge hinzufügen. Siehe hier für eine Beispiel - Vorlage.
Eine andere Lösung , die für mich gearbeitet , ist die Verwendung UnxUtils , die mehrere Dienstprogramme von ausführbaren Dateien hinzufügt (einschließlich ls
, sed
und grep
).
Verwendung: Quellcode herunterladen . Entpacken. Fügen Sie den UnxUtils\usr\local\wbin
Pfad zur Windows-PATH-Variablen hinzu. Starten Sie eine neue CMD-Instanz.
Sicherlich würde ls nicht als Unix-Befehl für die Stapel funktionieren. Wenn Sie% 1 auf -l oder -a usw. und alle Kombinationen davon prüfen, würde es funktionieren ...
Sie können dieser Anleitung folgen: https://gist.github.com/vladikoff/38307908088d58af206b
TL; DR : pass /K path/to/custom/init_cmd.bat
auf Ihren "Shell - Start" -Befehl.
Ich verwende ConsoleZ als Shell-Wrapper. In meinem Fall finde ich die Setup-Option unter "Registerkarten". Dann setze ich den Shell-Pfad "C:\Windows\System32\cmd.exe "/K C:\cmd_init.bat""
so .
Wo C:\cmd_init.bat
ist das Batch-Skript, das meine Makros enthält? Ich würde Folgendes tun:
@echo off
doskey ls=dir /b
rem other macro stuff..
Entschuldigung für die Formatierung und andere Fehler, dies ist meine erste Antwort hier. Ich hoffe, es hilft!
Jemand, der Linux Subsystem für Windows verwendet, könnte ls
von der Linux-Bash aus aufrufen . Der folgende Befehl erstellt den ls
Befehl in System32:
echo @bash -c "ls %*" > %systemroot%\system32\ls.bat
(Die Linux-Subsystemfunktion muss zuerst aktiviert / installiert werden.)
Hier ist mein C # -Quellcode und meine Binärdatei .
Fügen Sie einfach irgendwo ls.exe hinzu und fügen Sie den Pfad zur Umgebungsvariablen path hinzu.