Einige der Antworten sind sehr interessant, aber was genau ist mit dem Befehl 'dir' falsch?
Matt Donnan
3
@ MattDonnan Ich bin nur an ls gewöhnt und mache ein lustiges Gesicht, wenn ich es unter Windows mache. Nicht mehr ^^
aF.
1
@ DavidHeffernan, weil es in Windows nicht existiert?
aF.
1
Sicher tut es das. Ich benutze es jeden Tag.
David Heffernan
1
@aF. Ich verwende Windows 7, aber ich führe ls auf jeder Windows-Version aus. Ich sage nicht, dass Windows mit ls geliefert wird, nur dass es Open Source ist und gute Windows-Ports hat. Es ist trivial, es unter Windows auszuführen. Schau dir GnuWin32 an.
David Heffernan
Antworten:
117
Du könntest:
Erstellen Sie eine Batch-Datei mit dem Namen ls.batund lassen Sie sie nur den dirBefehl enthalten
Fügen Sie das Verzeichnis, in dem die ls.batDatei vorhanden ist, zu Ihrer PATHUmgebungsvariablen hinzu
Sie können dann lsan einer Eingabeaufforderung ausführen .
Ich wünschte, ich könnte dies mehr als einmal bewerten. Hat wunderbar funktioniert.
MrHappyAsthma
4
Dies ist besser, da Sie weiterhin die Verzeichnisoptionen verwenden können.
Ajon
17
Ich würde empfehlen, dir %*stattdessen zu verwenden, damit eine beliebige Anzahl von Befehlszeilenargumenten über ls.bat an dir übergeben werden kann. Andernfalls dir %1können Sie bei Verwendung des ls-Skripts höchstens ein Argument verwenden.
Adaline Simonian
2
@Vartan Es ist eine Schande, dass Ihr Kommentar der erste unter dem Schwellenwert "Mehr anzeigen" ist. Hoffentlich wird @secghost dies eines Tages sehen und ihre Antwort ändern. Ich möchte hinzufügen, dass das Tun @dir %*auch die zusätzliche Zeile entfernt, so dass es noch identischer ist mitdir
Captain Man
1
@ CaptainMan Oh, ja! Völlig vergessen @; 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.
Großartiger Vorschlag, der Zugriff auf die volle Funktionalität lsaller 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
phil
Ja, oder starten Sie einfach bash.exe im git-Ordner (anstelle von cmd) und genießen Sie eine ~ vollständige Shell (mit ls).
Johan
Git Bash ist schrecklich, ich mag die
Pfadoption
16
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.
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:
+1, ich habe vergessen zu sagen, dass das Windows XP war, aber das ist gut für Windows Vista / 7 :)
aF.
4
+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
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:
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 .
Verwenden Sie DOSKEYund $*, um Ihren lsBefehl zu erstellen .
Machen Sie den Befehl dauerhaft, indem Sie ihn in einer .bat / .cmd-Datei aufzeichnen und den Pfad der Datei zur Registrierung hinzufügen.
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, sedund grep).
Verwendung: Quellcode herunterladen . Entpacken. Fügen Sie den UnxUtils\usr\local\wbinPfad 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 ...
TL; DR : pass /K path/to/custom/init_cmd.batauf 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.batist 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!
Antworten:
Du könntest:
ls.bat
und lassen Sie sie nur dendir
Befehl enthaltenls.bat
Datei vorhanden ist, zu IhrerPATH
Umgebungsvariablen hinzuSie können dann
ls
an einer Eingabeaufforderung ausführen .quelle
ls dir
? Ich denke , man müßte das ändernls.bat
args zu handhaben ... oder Sie könnten versuchen Aliase: superuser.com/questions/49170/create-an-alias-in-windows-xpSie können diese Frage mit einem einfachen Befehl lösen:
Stellen Sie sicher, dass Sie zuerst
cmd.exe
als Administrator ausgeführt werden, wenn Sie sich in Vista und höher befindenquelle
dir %*
stattdessen zu verwenden, damit eine beliebige Anzahl von Befehlszeilenargumenten über ls.bat an dir übergeben werden kann. Andernfallsdir %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!
quelle
ls *
unddir *
mache nicht das Gleiche, also ist Aliasing Dir ein bisschen Hosen.C:\Program Files (x86)\GnuWin32\bin
, Ihrem Pfad hinzuzufügenDer einfachste Weg, den ich gefunden habe, ist:
bin
Verzeichnis von Git zu Ihrer Pfadvariablen hinzu. Meins befand sich inC:\Program Files\Git\usr\bin
.ls
ganze Pracht.quelle
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 \ binIch 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
quelle
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:
quelle
npm install cash-global -g
. Wäre tollls -l
alsll
(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:
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. Abermklink
und Cygwin sind gute Dinge zu wissen.quelle
+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:
Superuser Link 1
Superuser Link 2
quelle
Wenn Sie nur möchten, dass cmd
ls
als Alias für erkannt wirddir
, können Sie dendoskey
Befehl verwenden (aus dieser Antwort im Superuser ).Dies ändert nichts an der ursprünglichen Behandlung der Befehlszeilenparameter des Befehls dir.
quelle
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 .
quelle
Mein ls.bat war unten
das kann cli args übertragen
Legen Sie es in% windir% oder einem beliebigen Verzeichnis in Ihrer% PATH% -Variablen ab.
Stellen Sie einfach sicher, dass Sie die Datei mit ANSI-Codierung speichern :)
quelle
Ich empfehle das folgende Rezept.
DOSKEY
und$*
, um Ihrenls
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 tunsublime 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.
quelle
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
undgrep
).Verwendung: Quellcode herunterladen . Entpacken. Fügen Sie den
UnxUtils\usr\local\wbin
Pfad zur Windows-PATH-Variablen hinzu. Starten Sie eine neue CMD-Instanz.quelle
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 ...
quelle
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:Entschuldigung für die Formatierung und andere Fehler, dies ist meine erste Antwort hier. Ich hoffe, es hilft!
quelle
Jemand, der Linux Subsystem für Windows verwendet, könnte
ls
von der Linux-Bash aus aufrufen . Der folgende Befehl erstellt denls
Befehl in System32:(Die Linux-Subsystemfunktion muss zuerst aktiviert / installiert werden.)
quelle
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.
quelle