Niektóre odpowiedzi są dość interesujące, ale co właściwie jest nie tak z poleceniem „dir”?
Matt Donnan,
3
@MattDonnan Jestem przyzwyczajony do ls i robię śmieszną minę, kiedy robię to w oknie. Już nie ^^
aF.
1
@DavidHeffernan, ponieważ nie istnieje w systemie Windows?
aF.
1
Jasne, że tak. Używam tego codziennie.
David Heffernan
1
@aF. Używam Windows 7, ale uruchamiam ls na dowolnej wersji Windows. Nie mówię, że Windows jest wyposażony w ls, tylko że jest open source i ma dobre porty Windows, to trywialne, aby go uruchomić w systemie Windows. Spójrz na GnuWin32.
David Heffernan
Odpowiedzi:
117
Mógłbyś:
utwórz plik wsadowy o nazwie ls.bati niech zawiera dirtylko polecenie
dodaj katalog, w którym ls.batplik istnieje, do PATHzmiennej środowiskowej
Chciałbym móc to ocenić więcej niż raz. Pracował cudownie.
MrHappyAsthma
4
Jest to lepsze, ponieważ nadal możesz używać opcji dir.
ajon
17
dir %*Zalecałbym użycie zamiast tego, aby umożliwić przekazywanie dowolnej liczby argumentów wiersza poleceń do katalogu dir przez ls.bat. W przeciwnym razie, używając dir %1, możesz użyć co najwyżej jednego argumentu, gdy używasz skryptu ls.
Adaline Simonian
2
@Vartan szkoda, że Twój komentarz jest pierwszy poniżej progu „pokaż więcej”. Miejmy nadzieję, że @secghost zobaczy to i kiedyś zmodyfikuje swoją odpowiedź. Chciałbym dodać, że @dir %*spowoduje to również usunięcie dodatkowej linii, dzięki czemu jest jeszcze bardziej identyczny zdir
Kapitan Man
1
@CaptainMan Oh, yeah! Całkowicie zapomniałem o @; sprytna składnia do użycia, aby uniknąć bałaganu na wyjściu. Chociaż byłoby o wiele łatwiej, gdyby system Windows był zgodny z POSIX. Przynajmniej możemy marzyć.
Świetna propozycja dająca dostęp do pełnej funkcjonalności lsi wszystkich jej opcjonalnych argumentów. Tylko niewielka aktualizacja, zainstalowałem najnowszą wersję git dla systemu Windows, a ls.exe można teraz znaleźć w C: \ Program Files \ Git \ usr \ bin
phil
Tak, lub po prostu uruchom bash.exe w folderze git (zamiast cmd) i ciesz się ~ pełną powłoką (z ls).
Johan
git bash jest ohydny, podoba mi się opcja ścieżki
omikes
16
Mam rozwiązanie ale jest brudne:
Utwórz plik o nazwie ls.bat zawierający tylko „dir”.
Umieść go w C: \ windows \ system32 (lub w dowolnym katalogu w PATH env var).
Najlepszym rozwiązaniem kiedykolwiek użytkownik Linuksa na oknach npm install cash-global -g. Byłoby wspaniale dodać również ls -ljako ll(LL).
user2925656
To wybawiciel
HebleV
6
Wiersz polecenia systemu Windows dla Vista / 7 pozwoli na dowiązania symboliczne NTFS, uruchom cmd.exe jako administrator, a następnie:
mklink ls %System%\dir.exe
Następnie skonfiguruj zmienną środowiskową PATH, aby zawierała lokalizację właśnie utworzonego łącza.
Jeśli chcesz czegoś więcej niż tylko polecenie „ls”, powinieneś przyjrzeć się cygwin .
EDYCJA - Właśnie sobie sprawę, że dir.exenie jest oddzielnym programem, więc to tak naprawdę nie działa. Ale mklinki cygwin to dobre rzeczy, o których warto wiedzieć.
Zainstaluj wersję 32- lub 64-bitową dla swojego systemu. Domyślne ustawienia i pakiety powinny zawierać to, czego potrzebujesz, więc nie musisz niczego zmieniać, gdy dojdziesz do ekranu pakietów.
Po instalacji skopiuj ścieżkę do folderu Cygwin do zmiennych ścieżki środowiskowej. Na przykład; jeśli zainstalowałeś cygwin w C: \ Cygwin, dodasz następujące zmienne do zmiennych ścieżki systemu:
; C: \ Cygwin \ bin
W moim systemie zainstalowałem wersję 64-bitową, a domyślna nazwa i ścieżka folderu to C: \ cygwin64. Dlatego dodałem następujące elementy do zmiennych ścieżki środowiska systemu:
; C: \ cygwin64 \ bin
Uruchom ponownie terminal, jeśli jest otwarty. Następnie wpisz ls, a zobaczysz listę katalogów.
Jeśli nie wiesz, jak ustawiać zmienne środowiskowe PATH, zapoznaj się z poniższymi informacjami:
możesz także użyć cygwin i po prostu użyć polecenia ls bezpośrednio wraz ze wszystkimi innymi narzędziami wiersza poleceń unix, do których możesz być przyzwyczajony.
Utrwal polecenie, zapisując je w pliku .bat / .cmd i dodaj ścieżkę do pliku do rejestru.
Na przykład, twoje polecenie może wyglądać tak, jakby DOSKEY ls=dir DOSKEY sublime="C:\Program Files\Sublime Text 2\sublime_text" $* $*było przydatne w przypadku poleceń, które przyjmują argumenty. Na przykład tutaj lubię móc to zrobićsublime my_code.c .
Rejestr dla cmd znajduje się pod adresem HKEY_CURRENT_USER -> Oprogramowanie -> Microsoft -> Command Processor. Utwórz wpis o wartości ciągu o nazwie AutoRun z pełną ścieżką pliku (bez folderu zawierającego), taką jak%USERPROFILE%\custom_command.cmd . Następnie za każdym razem, gdy uruchomisz cmd, Twoje polecenie zostanie załadowane!
Możesz dodać więcej przydatnych rzeczy do pliku wsadowego. Zobacz tutaj przykładowy szablon.
Innym rozwiązaniem, który pracował dla mnie jest użycie UnxUtils , co dodaje wiele narzędzi z plików wykonywalnych (włącznie ls, sedorazgrep ).
Sposób użycia: pobierz kod źródłowy . Rozsunąć suwak. Dodaj UnxUtils\usr\local\wbinścieżkę do zmiennej PATH systemu Windows. Uruchom nową instancję CMD.
TL; DR : przejdź /K path/to/custom/init_cmd.batdo polecenia „uruchamiania powłoki”.
Używam ConsoleZ jako mojego opakowania powłoki, więc w moim przypadku mogę znaleźć opcję konfiguracji w "zakładkach", a następnie ustawiam ścieżkę powłoki na "C:\Windows\System32\cmd.exe "/K C:\cmd_init.bat""taką .
Gdzie C:\cmd_init.batjest skrypt wsadowy zawierający moje makra, oto co chciałbym zrobić:
@echo off
doskey ls=dir /b
rem other macro stuff..
Przepraszam za formatowanie i inne błędy, odpowiadam tutaj po raz pierwszy. Mam nadzieję, że to pomoże!
Odpowiedzi:
Mógłbyś:
ls.bat
i niech zawieradir
tylko poleceniels.bat
plik istnieje, doPATH
zmiennej środowiskowejMożesz następnie wykonać
ls
z wiersza polecenia.źródło
ls dir
? Myślę, że musiałbyś zmodyfikować,ls.bat
aby obsługiwać argumenty ... lub możesz wypróbować aliasy: superuser.com/questions/49170/create-an-alias-in-windows-xpMożesz rozwiązać to pytanie za pomocą jednego prostego polecenia:
Jeśli korzystasz
cmd.exe
z Vista i nowszych , najpierw uruchom jako administratorźródło
dir %*
Zalecałbym użycie zamiast tego, aby umożliwić przekazywanie dowolnej liczby argumentów wiersza poleceń do katalogu dir przez ls.bat. W przeciwnym razie, używającdir %1
, możesz użyć co najwyżej jednego argumentu, gdy używasz skryptu ls.@dir %*
spowoduje to również usunięcie dodatkowej linii, dzięki czemu jest jeszcze bardziej identyczny zdir
@
; sprytna składnia do użycia, aby uniknąć bałaganu na wyjściu. Chociaż byłoby o wiele łatwiej, gdyby system Windows był zgodny z POSIX. Przynajmniej możemy marzyć.To stare pytanie, ale dla przypomnienia:
http://gnuwin32.sourceforge.net/packages/coreutils.htm
Daje ci ls i dużo więcej!
źródło
ls *
idir *
nie rób tego samego, więc aliasing dir to trochę spodni.C:\Program Files (x86)\GnuWin32\bin
do swojej ścieżkiNajłatwiejszy sposób, jaki znalazłem, to:
bin
katalog Git do zmiennej Path. Mój znajdował się wC:\Program Files\Git\usr\bin
.ls
w całej okazałości.źródło
ls
i wszystkich jej opcjonalnych argumentów. Tylko niewielka aktualizacja, zainstalowałem najnowszą wersję git dla systemu Windows, a ls.exe można teraz znaleźć w C: \ Program Files \ Git \ usr \ binMam rozwiązanie ale jest brudne:
Utwórz plik o nazwie ls.bat zawierający tylko „dir”.
Umieść go w C: \ windows \ system32 (lub w dowolnym katalogu w PATH env var).
To (powinno) działać!
Edycja: Coś bardziej spójnego: /superuser/49170/create-an-alias-in-windows-xp
źródło
Jeśli masz zainstalowany Node.js w swoim systemie, możesz zainstalować go z Cash , biblioteki, którą napisałem dla poleceń Linuksa w systemie Windows:
źródło
npm install cash-global -g
. Byłoby wspaniale dodać równieżls -l
jakoll
(LL).Wiersz polecenia systemu Windows dla Vista / 7 pozwoli na dowiązania symboliczne NTFS, uruchom cmd.exe jako administrator, a następnie:
Następnie skonfiguruj zmienną środowiskową PATH, aby zawierała lokalizację właśnie utworzonego łącza.
Jeśli chcesz czegoś więcej niż tylko polecenie „ls”, powinieneś przyjrzeć się cygwin .
EDYCJA - Właśnie sobie sprawę, że
dir.exe
nie jest oddzielnym programem, więc to tak naprawdę nie działa. Alemklink
i cygwin to dobre rzeczy, o których warto wiedzieć.źródło
+1 w poście powyżej sugeruje zainstalowanie git dla Windows i dodanie katalogu bin do zmiennych ścieżki.
Innym sposobem, w jaki uzyskałem kontakt, ls i wiele innych poleceń UNIX działających w cmd.exe na moich komputerach z systemem Windows 8 i Windows 7.
Przejdź do następującej witryny, aby zainstalować Cygwin
https://www.cygwin.com/install.html
Zainstaluj wersję 32- lub 64-bitową dla swojego systemu. Domyślne ustawienia i pakiety powinny zawierać to, czego potrzebujesz, więc nie musisz niczego zmieniać, gdy dojdziesz do ekranu pakietów.
Po instalacji skopiuj ścieżkę do folderu Cygwin do zmiennych ścieżki środowiskowej. Na przykład; jeśli zainstalowałeś cygwin w C: \ Cygwin, dodasz następujące zmienne do zmiennych ścieżki systemu:
; C: \ Cygwin \ bin
W moim systemie zainstalowałem wersję 64-bitową, a domyślna nazwa i ścieżka folderu to C: \ cygwin64. Dlatego dodałem następujące elementy do zmiennych ścieżki środowiska systemu:
; C: \ cygwin64 \ bin
Uruchom ponownie terminal, jeśli jest otwarty. Następnie wpisz ls, a zobaczysz listę katalogów.
Jeśli nie wiesz, jak ustawiać zmienne środowiskowe PATH, zapoznaj się z poniższymi informacjami:
Łącze superużytkownika 1
Superuser Link 2
źródło
Jeśli chcesz, aby cmd było rozpoznawane
ls
jako alias dladir
, możesz użyćdoskey
polecenia (z tej odpowiedzi na superużytkowniku ).Nie zmienia to pierwotnej obsługi parametrów wiersza poleceń polecenia dir.
źródło
możesz także użyć cygwin i po prostu użyć polecenia ls bezpośrednio wraz ze wszystkimi innymi narzędziami wiersza poleceń unix, do których możesz być przyzwyczajony.
źródło
mój ls.bat był poniżej
które mogą przenosić argumenty kliknięć
umieść go w% windir% lub w dowolnym katalogu w zmiennej% PATH%.
Tylko pamiętaj, aby zapisać plik z kodowaniem ANSI :)
źródło
Polecam następujący przepis.
DOSKEY
i,$*
aby utworzyćls
polecenie.Na przykład, twoje polecenie może wyglądać tak, jakby
DOSKEY ls=dir
DOSKEY sublime="C:\Program Files\Sublime Text 2\sublime_text" $*
$*
było przydatne w przypadku poleceń, które przyjmują argumenty. Na przykład tutaj lubię móc to zrobićsublime my_code.c
.Rejestr dla cmd znajduje się pod adresem HKEY_CURRENT_USER -> Oprogramowanie -> Microsoft -> Command Processor. Utwórz wpis o wartości ciągu o nazwie AutoRun z pełną ścieżką pliku (bez folderu zawierającego), taką jak
%USERPROFILE%\custom_command.cmd
. Następnie za każdym razem, gdy uruchomisz cmd, Twoje polecenie zostanie załadowane!Możesz dodać więcej przydatnych rzeczy do pliku wsadowego. Zobacz tutaj przykładowy szablon.
źródło
Innym rozwiązaniem, który pracował dla mnie jest użycie UnxUtils , co dodaje wiele narzędzi z plików wykonywalnych (włącznie
ls
,sed
orazgrep
).Sposób użycia: pobierz kod źródłowy . Rozsunąć suwak. Dodaj
UnxUtils\usr\local\wbin
ścieżkę do zmiennej PATH systemu Windows. Uruchom nową instancję CMD.źródło
Z pewnością ls nie działałby jako polecenie unixowe dla partii. Jeśli zaznaczysz% 1 dla -l lub -a itd. I wszystkie ich kombinacje, zadziała ...
źródło
Możesz postępować zgodnie z tym przewodnikiem: https://gist.github.com/vladikoff/38307908088d58af206b
TL; DR : przejdź
/K path/to/custom/init_cmd.bat
do polecenia „uruchamiania powłoki”.Używam ConsoleZ jako mojego opakowania powłoki, więc w moim przypadku mogę znaleźć opcję konfiguracji w "zakładkach", a następnie ustawiam ścieżkę powłoki na
"C:\Windows\System32\cmd.exe "/K C:\cmd_init.bat""
taką .Gdzie
C:\cmd_init.bat
jest skrypt wsadowy zawierający moje makra, oto co chciałbym zrobić:Przepraszam za formatowanie i inne błędy, odpowiadam tutaj po raz pierwszy. Mam nadzieję, że to pomoże!
źródło
Ktoś, kto używa Linux Subsystem for Windows, może zadzwonić
ls
z Linux bash. Następujące polecenie tworzyls
polecenie w System32:(Funkcja podsystemu Linux musi być najpierw włączona / zainstalowana)
źródło
Oto mój kod źródłowy C # i plik binarny .
Po prostu dodaj gdzieś ls.exe i dodaj ścieżkę do zmiennej środowiskowej ścieżki.
źródło