Szukaj…


Wprowadzenie

Batch i bash są zupełnie inne. Flagi partii są oznaczone za pomocą / , podczas gdy flagi bash używają - . Wielkie litery mają znaczenie w bash, ale (prawie) wcale nie są wsadowe. Nazwy zmiennych wsadowych mogą zawierać spacje, nazwy zmiennych wsadowych nie mogą. Ostatecznie oba są sposobami manipulowania i interakcji z wierszem poleceń. Nic dziwnego, że możliwości obu systemów pokrywają się w rozsądnych rozmiarach.

Uwagi

  • bitsadmin jest przestarzały na rzecz polecenia cmdlet BITS programu PowerShell, ale nadal działa od wersji systemu Windows 10 1607
  • certutil oddziela pary cyfr szesnastkowych spacją, więc md5sum zwróci przykładową wartość d41d8cd98f00b204e9800998ecf8427e , podczas gdy certutil wyświetla taką samą wartość jak d4 1d 8c d9 8f 00 b2 04 e9 80 09 98 ec f8 42 7e
  • Aby cd na inny dysk (na przykład od C: do D :), należy użyć flagi /d
  • del nie może usuwać folderów, zamiast tego użyj rm
  • grep jest o wiele potężniejszy niż find i findstr , porównywanie ich jest prawie niesprawiedliwe; find nie ma możliwości wyrażenia regularnego, a findstr ma bardzo ograniczone możliwości wyrażenia regularnego ( [az]{2} nie jest poprawną składnią, ale [az][az] ma wartość)
  • for pętli w wierszu polecenia systemu Windows można używać tylko nazw zmiennych jednoznakowych; to jedyne w nazwach zmiennych wsadowych rozróżniana jest wielkość liter
  • for pętli w wierszu polecenia użyj również zmiennej postaci %A zamiast %A% - w for pętli w skryptach wsadowych użyj postaci zmiennej %%A
  • md automatycznie tworzy niezbędne katalogi nadrzędne, podczas gdy mkdir potrzebuje do tego flagi -p
  • rem nie może być używany jako znak komentarza, chyba że jest poprzedzony znakiem &
  • :: nie może być w ogóle używany jako komentarz wbudowany, a także nie powinien być używany wewnątrz bloku kodu (zestawu nawiasów)
  • Zauważ, że niektóre polecenia systemu Windows, takie jak ping nadal używają - jako flagi

Polecenia wsadowe i ich odpowiedniki Bash

Partia Grzmotnąć Opis
command /? man command Pokazuje pomoc dotyczącą polecenia
bitsadmin wget lub curl Pobiera zdalny plik
certutil -hashfile file_name MD5 md5sum file_name Pobiera sumę MD5 nazwa_pliku
cd pwd Wyświetla bieżący katalog
cd directory cd directory Zmienia bieżący katalog na podany
cls clear Czyści ekran
copy cp Kopiuje plik lub pliki ze ścieżki źródłowej do ścieżki docelowej
date date Wyświetla datę lub ustawia ją na podstawie danych wprowadzonych przez użytkownika
del rm Usuwa plik lub pliki
dir ls wyświetla listę plików i katalogów w bieżącym katalogu
echo echo Wyświetla tekst na ekranie
exit return Wychodzi ze skryptu lub podprogramu
exit logout Zamyka wiersz poleceń lub terminal
fc diff Porównuje zawartość dwóch plików
find "string" file_name grep "string" file_name Wyszukiwania nazwa_pliku na ciąg
findstr "string" file_name grep "string" file_name Wyszukiwania nazwa_pliku na ciąg
for /F %A in (fileset*) do something for item in fileset*; do; something; done Zrób coś dla każdego pliku w zestawie plików
for /F %A in ('command') do something `command` Zwraca wynik polecenia
for /L %A in (first,increment,last) do something for item in `seq first increment last`; do; something; done Zaczyna się od początku i liczy się stopniowo, aż do końca
forfiles find Wyszukuje pliki spełniające określone kryteria
if "%variable%"=="value" ( if [ "variable"="value" ]; then Porównuje dwie wartości
ipconfig ifconfig Wyświetla informacje o IP
md mkdir Tworzy nowe foldery
mklink ln -s Tworzy dowiązanie symboliczne
more more Wyświetla jeden ekran wyjścia na raz
move mv Przenosi plik lub pliki ze ścieżki źródłowej do ścieżki docelowej
pause read -p "Press any key to continue" Wstrzymuje wykonywanie skryptu, dopóki użytkownik nie naciśnie przycisku
popd popd Usuwa górny wpis ze stosu katalogów i przechodzi do nowego górnego katalogu
pushd pushd Dodaje bieżący katalog do stosu katalogów i przechodzi do nowego katalogu głównego
ren mv Zmienia nazwy plików
rem lub :: # Komentuje wiersz kodu
rd rmdir Usuwa puste katalogi
rd /s rm -rf Usuwa katalogi bez względu na to, czy były puste
set variable=value variable=value Ustawia wartość zmiennej na wartość
set /a variable=equation variable=$((equation)) Wykonuje matematykę (partia może używać tylko 32-bitowych liczb całkowitych)
set /p variable=promptstring read -p "promptstring" variable Pobiera dane wejściowe użytkownika i przechowuje je w zmiennej
shift shift Przesuwa argumenty o 1 (lub n, jeśli podano)
sort sort Sortuje dane wyjściowe alfabetycznie według linii
tasklist ps Pokazuje listę uruchomionych procesów
taskkill /PID processid kill processid Zabija proces za pomocą PID processid
time /t date Wyświetla bieżącą godzinę
type cat Wyświetla zawartość pliku
where which Przeszukuje bieżący katalog i ŚCIEŻKĘ w poszukiwaniu pliku lub polecenia
whoami id Wyświetla nazwę i grupę bieżącego użytkownika

Zmienne wsadowe i ich odpowiednik Bash

Partia Grzmotnąć Opis
%variable% $variable Zmienna regularna
!variable! $variable Zmienna wewnątrz bloku kodu, gdy setlocal enabledelayedexpansion jest setlocal enabledelayedexpansion
%errorlevel% lub ERRORLEVEL $? Zwraca status poprzedniego polecenia: 0, jeśli się powiedzie, 1 (lub coś innego), jeśli nie
%1 , %2 , %3 itd. $1 $2 $3 itp. Parametry podane do skryptu
%* $* Wszystkie parametry podane do skryptu


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow