Suche…


Einführung

Batch und Bash sind sehr unterschiedlich. Stapelflags werden mit einem / , während Bashflags ein - . Die Kapitalisierung ist in bash wichtig, aber (fast) gar nicht in Batch. Batch-Variablennamen können Leerzeichen enthalten, Bash-Variablennamen nicht. Letztendlich sind beide Möglichkeiten, die Befehlszeile zu manipulieren und damit zu interagieren. Es überrascht nicht, dass es zwischen den Fähigkeiten der beiden Systeme eine vernünftige Überlappung gibt.

Bemerkungen

  • bitsadmin ist zugunsten des PowerShell-Cmdlets BITS veraltet, funktioniert jedoch noch ab Windows 10 Version 1607
  • certutil trennt Paare hexadezimaler Ziffern durch ein Leerzeichen, sodass md5sum einen Beispielwert von d41d8cd98f00b204e9800998ecf8427e , während certutil denselben Wert wie d4 1d 8c d9 8f 00 b2 04 e9 80 09 98 ec f8 42 7e
  • Um zu einem anderen Laufwerk zu cd (z. B. von C: nach D :) muss das Flag /d verwendet werden
  • del kann keine Ordner löschen, verwenden Sie stattdessen rm
  • grep ist so viel mächtiger als find und findstr , es ist fast findstr , sie zu vergleichen; find hat keine findstr und findstr hat sehr eingeschränkte findstr ( [az]{2} ist keine gültige Syntax, aber [az][az] ist)
  • for Schleifen an der Windows-Eingabeaufforderung können nur einzeilige Variablennamen verwenden. Dies ist die einzige Zeit, in der die Namen der Batch-Variablen die Groß- und Kleinschreibung berücksichtigen
  • Verwenden Sie for Schleifen an der Eingabeaufforderung auch die Variable %A anstelle von %A% for Schleifen in Batch-Skripts verwenden Sie die Variable Form %%A
  • md erstellt automatisch alle erforderlichen übergeordneten Verzeichnisse, während mkdir das Flag -p benötigt
  • rem darf nicht als Inline-Kommentarzeichen verwendet werden, es sei denn, ihm wird ein & vorangestellt.
  • :: darf überhaupt nicht als Inline-Kommentar verwendet werden und sollte auch nicht innerhalb eines Codeblocks (Satz von Klammern) verwendet werden
  • Beachten Sie, dass einige Windows - Befehl wie ping noch verwendet - als Flags

Stapelbefehle und ihre Bash-Äquivalente

Stapel Bash Beschreibung
command /? man command Zeigt die Hilfe zum Befehl an
bitsadmin wget oder curl Lädt eine Remote-Datei herunter
certutil -hashfile file_name MD5 md5sum file_name Ruft die MD5-Prüfsumme von Dateiname ab
cd pwd Zeigt das aktuelle Verzeichnis an
cd directory cd directory Ändert das aktuelle Verzeichnis in das angegebene Verzeichnis
cls clear Löscht den Bildschirm
copy cp Kopiert eine oder mehrere Dateien aus einem Quellpfad in einen Zielpfad
date date Zeigt das Datum an oder stellt es basierend auf Benutzereingaben ein
del rm Löscht eine oder mehrere Dateien
dir ls Zeigt eine Liste der Dateien und Verzeichnisse im aktuellen Verzeichnis an
echo echo Zeigt Text auf dem Bildschirm an
exit return Beendet ein Skript oder eine Subroutine
exit logout Schließt die Eingabeaufforderung oder das Terminal
fc diff Vergleicht den Inhalt von zwei Dateien
find "string" file_name grep "string" file_name Durchsucht Dateiname nach Zeichenfolge
findstr "string" file_name grep "string" file_name Durchsucht Dateiname nach Zeichenfolge
for /F %A in (fileset*) do something for item in fileset*; do; something; done Tun Sie etwas für jede Datei in einer Reihe von Dateien
for /F %A in ('command') do something `command` Gibt die Ausgabe eines Befehls zurück
for /L %A in (first,increment,last) do something for item in `seq first increment last`; do; something; done Beginnt zuerst und zählt bis zum letzten Schritt
forfiles find Sucht nach Dateien, die bestimmten Kriterien entsprechen
if "%variable%"=="value" ( if [ "variable"="value" ]; then Vergleicht zwei Werte
ipconfig ifconfig Zeigt IP-Informationen an
md mkdir Erzeugt neue Ordner
mklink ln -s Erzeugt einen symbolischen Link
more more Zeigt jeweils einen Bildschirm der Ausgabe an
move mv Verschiebt eine oder mehrere Dateien aus einem Quellpfad in einen Zielpfad
pause read -p "Press any key to continue" Unterbricht die Skriptausführung, bis der Benutzer eine Taste drückt
popd popd Entfernt den obersten Eintrag aus dem Verzeichnisstapel und wechselt in das neue oberste Verzeichnis
pushd pushd Fügt das aktuelle Verzeichnis dem Verzeichnisstapel hinzu und wechselt zum neuen obersten Verzeichnis
ren mv Benennt Dateien um
rem oder :: # Kommentiert eine Codezeile
rd rmdir Entfernt leere Verzeichnisse
rd /s rm -rf Entfernt Verzeichnisse unabhängig davon, ob sie leer waren oder nicht
set variable=value variable=value Legt den Wert der Variablen auf value fest
set /a variable=equation variable=$((equation)) Führt mathematische Berechnungen durch (Stapel kann nur 32-Bit-Ganzzahlen verwenden)
set /p variable=promptstring read -p "promptstring" variable Ruft die Benutzereingabe ab und speichert sie in einer Variablen
shift shift Verschiebt Argumente um 1 (oder n, wenn angegeben)
sort sort Sortiert die Ausgabe alphabetisch nach Zeile
tasklist ps Zeigt eine Liste der laufenden Prozesse an
taskkill /PID processid kill processid Tötet den Prozess mit PID processid
time /t date Zeigt die aktuelle Uhrzeit an
type cat Zeigt den Inhalt einer Datei an
where which Durchsucht das aktuelle Verzeichnis und den PATH nach einer Datei oder einem Befehl
whoami id Zeigt den Namen und die Gruppe des aktuellen Benutzers an

Stapelvariablen und ihr Bash-Äquivalent

Stapel Bash Beschreibung
%variable% $variable Eine reguläre Variable
!variable! $variable Eine Variable innerhalb eines Codeblocks, wenn setlocal enabledelayedexpansion ist
%errorlevel% oder ERRORLEVEL $? Gibt den Status des vorherigen Befehls zurück: 0 bei Erfolg, 1 (oder etwas anderes), falls nicht
%1 , %2 , %3 usw. $1 $2 $3 usw. Die für ein Skript angegebenen Parameter
%* $* Alle Parameter eines Skripts


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow