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.batund lassen Sie sie nur den dirBefehl enthaltenls.batDatei vorhanden ist, zu Ihrer PATHUmgebungsvariablen hinzuSie können dann lsan einer Eingabeaufforderung ausführen .
ls dir? Ich denke , man müßte das ändern ls.batargs 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.exeals 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 %1kö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:
binVerzeichnis von Git zu Ihrer Pfadvariablen hinzu. Meins befand sich in C:\Program Files\Git\usr\bin.lsganze Pracht.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
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 -lals 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.exeist kein separates Programm, also funktioniert das nicht wirklich. Aber mklinkund 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 lsals Alias für erkannt wird dir, können Sie den doskeyBefehl 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.
DOSKEYund $*, um Ihren lsBefehl 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, 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 ...
Sie können dieser Anleitung folgen: https://gist.github.com/vladikoff/38307908088d58af206b
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!
Jemand, der Linux Subsystem für Windows verwendet, könnte lsvon der Linux-Bash aus aufrufen . Der folgende Befehl erstellt den lsBefehl 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.