Chcę użyć ls w wierszu poleceń systemu Windows i uruchomić polecenie dir.
Jak mogę to zrobić?
Chcę użyć ls w wierszu poleceń systemu Windows i uruchomić polecenie dir.
Jak mogę to zrobić?
Odpowiedzi:
Mógłbyś:
ls.bat
i niech zawiera dir
tylko poleceniels.bat
plik istnieje, do PATH
zmiennej środowiskowejMożesz następnie wykonać ls
z wiersza polecenia.
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-xp
Możesz rozwiązać to pytanie za pomocą jednego prostego polecenia:
echo @dir %* > %systemroot%\system32\ls.bat
Jeśli korzystasz cmd.exe
z Vista i nowszych , najpierw uruchom jako administrator
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.
@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!
ls *
i dir *
nie rób tego samego, więc aliasing dir to trochę spodni.
C:\Program Files (x86)\GnuWin32\bin
do swojej ścieżki
Najł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.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 \ bin
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).
To (powinno) działać!
Edycja: Coś bardziej spójnego: /superuser/49170/create-an-alias-in-windows-xp
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:
npm install cash-ls -g
npm install cash-global -g
. Byłoby wspaniale dodać również ls -l
jako ll
(LL).
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.exe
nie jest oddzielnym programem, więc to tak naprawdę nie działa. Ale mklink
i cygwin to dobre rzeczy, o których warto wiedzieć.
+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:
Jeśli chcesz, aby cmd było rozpoznawane ls
jako alias dla dir
, możesz użyć doskey
polecenia (z tej odpowiedzi na superużytkowniku ).
Nie zmienia to pierwotnej obsługi parametrów wiersza poleceń polecenia dir.
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.
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.
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 ...
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ć:
@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!
Ktoś, kto używa Linux Subsystem for Windows, może zadzwonić ls
z Linux bash. Następujące polecenie tworzy ls
polecenie w System32:
echo @bash -c "ls %*" > %systemroot%\system32\ls.bat
(Funkcja podsystemu Linux musi być najpierw włączona / zainstalowana)
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.