Come creare LS nel prompt dei comandi di Windows?
-
28-10-2019 - |
Domanda
Voglio usare LS nel prompt dei comandi Windows e farlo eseguire il comando DIR.
Come lo posso fare?
Soluzione
Potresti:
- Crea un file batch chiamato
ls.bat
e fallo contenere ildir
Solo comando - Aggiungi la directory in cui il
ls.bat
Il file esiste per il tuoPATH
variabile d'ambiente
Potresti quindi eseguire ls
da un prompt dei comandi.
Altri suggerimenti
Puoi risolvere questa domanda con un semplice comando:
echo @dir %* > %systemroot%\system32\ls.bat
Assicurati di correre cmd.exe
come amministratore prima se sei su Vista e su
È una vecchia domanda ma per la cronaca:
http://gnuwin32.sourceforge.net/packages/coreutils.htm
Ti dà LS e molto di più!
Il modo più semplice che ho trovato è:
- Installare Git per Windows
- Aggiungi il
bin
Directory di Git al tuo percorso variabile. Il mio era situato inC:\Program Files\Git\usr\bin
. - Avvia un prompt dei comandi e divertiti
ls
In tutta la sua gloria.
Ho una soluzione ma è sporca:
Crea un file denominato ls.bat contenente solo "dir".
Mettilo in C: Windows System32 (o qualsiasi directory in Path env var).
Quello (dovrebbe) funziona!
EDIT: qualcosa di più coerente: https://superuser.com/questions/49170/create-an-alias-in-windows-xp
Il prompt dei comandi di Windows per Vista/7 consentirà collegamenti simbolici NTFS, esegui CMD.EXE come amministratore: quindi:
mklink ls %System%\dir.exe
Quindi impostare il percorso Variabile di ambiente per includere la posizione del link che hai appena creato.
Se vuoi più del semplice comando "LS", dovresti esaminare Cygwin.
EDIT- appena realizzato dir.exe
Non è un programma separato, quindi questo non funziona davvero. Ma mklink
E Cygwin sono cose buone da sapere.
+1 sul post sopra, suggerendo di installare Git per Windows e aggiungere il contenitore della directory alle variabili del percorso.
Un altro modo in cui ho avuto tocco, LS e molti altri comandi UNIX che lavorano in cmd.exe sulle mie macchine Windows 8 e Windows 7.
Vai al seguente sito per installare Cygwin
https://www.cygwin.com/install.html
Installa la versione a 32 o 64 bit per il tuo sistema. Le impostazioni e i pacchetti predefiniti dovrebbero includere ciò di cui hai bisogno in modo da non dover cambiare nulla una volta arrivata alla schermata dei pacchetti.
Dopo l'installazione, copiare il percorso della cartella Cygwin nelle variabili del percorso ambientale. Per esempio; Se hai installato Cygwin su C: Cygwin, aggiungerai quanto segue alle variabili del percorso del sistema ambientale:
; C: cygwin bin
Sul mio sistema ho installato la versione a 64 bit e il nome e il percorso della cartella predefiniti erano C: Cygwin64. Quindi ho aggiunto quanto segue alle variabili del percorso ambientale di sistema:
; C: cygwin64 bin
Riavvia il tuo terminale se è aperto. Quindi digita LS e vedrai un elenco di directory.
Vedi quanto segue se non hai familiarità con le variabili di ambientazione del percorso di impostazione:
Se vuoi solo che CMD riconosca ls
come alias per dir
, puoi usare il doskey
comando (da Questa risposta su Superuser).
Ciò non modifica la gestione dei parametri della riga di comando originale del comando DIR.
Potresti anche usare Cygwin E basta utilizzare il comando LS direttamente insieme a tutti gli altri strumenti di riga di comando Unix che potresti essere abituato.
Il mio ls.bat era sotto
@dir %*
che può trasferire CLI Args
ls /b
ls /w
Mettilo in % Windir % o qualsiasi directory nella variabile % percorso %.
Assicurati solo di salvare il file con codifica ANSI :)
Consiglio la seguente ricetta.
- Uso
DOSKEY
e$*
per creare il tuols
comando. - Rendi il comando persistente registrandolo in un file .bat/.cmd e aggiungere il percorso del file al registro.
Ad esempio, il tuo comando potrebbe sembrare
DOSKEY ls=dir
DOSKEY sublime="C:\Program Files\Sublime Text 2\sublime_text" $*
$*
è utile per i comandi che assumono argomenti. Ad esempio, qui mi piace essere in grado di fare sublime my_code.c
.
Il registro per CMD è su HKEY_Current_User -> Software -> Microsoft -> Processore di comando. Crea una voce valutata in stringa chiamata Autorun con il completo percorso del file (non la cartella contenente) come %USERPROFILE%\custom_command.cmd
. Quindi ogni volta che CMD viene eseguito, il comando verrà caricato!
Puoi aggiungere anche cose più utili al file batch. Vedere qui Per un modello di esempio.
Un'altra soluzione che ha funzionato per me è usare Unxutili, che aggiunge più utilità da file eseguibili (incluso ls
, sed
, e grep
).
Da usare: download codice sorgente. Decomprimere. Aggiungi il UnxUtils\usr\local\wbin
Percorso alla variabile del percorso di Windows. Avvia una nuova istanza CMD.
Sicuramente LS non funzionerebbe come comando UNIX per i lotti. Se controlli %1 per -l o -a ecc. E tutte le combinazioni di esse, funzionerebbe ...
Potresti seguire questa guida:https://gist.github.com/vladikoff/38307908088d58af206b
Tl; dr: passaggio /K path/to/custom/init_cmd.bat
al tuo comando "Shell Startup".
Sto usando Consolez come mio wrapper Shell, quindi nel mio caso posso trovare l'opzione di configurazione in "schede", quindi ho impostato il percorso di shell su "C:\Windows\System32\cmd.exe "/K C:\cmd_init.bat""
come questo.
Dove C:\cmd_init.bat
è lo script batch contenente le mie macro, ecco cosa vorrei scegliere:
@echo off
doskey ls=dir /b
rem other macro stuff..
Ci scusiamo per la formattazione e altri errori, questa è la prima volta che rispondo qui. Spero possa essere d'aiuto!
Qualcuno che usa il sottosistema Linux per Windows potrebbe chiamare ls
Dalla bash di Linux. Il seguente comando crea il file ls
Comando in System32:
echo @bash -c "ls %*" > %systemroot%\system32\ls.bat
(La funzione del sottosistema Linux deve essere prima abilitata/installata)
Ecco il mio C# Codice sorgente e binario.
Basta aggiungere ls.exe da qualche parte e aggiungere il percorso alla variabile dell'ambiente del percorso.