Zoeken…


Invoering

Batch en bash zijn heel verschillend. Batchvlaggen worden aangegeven met een / , terwijl bash-vlaggen een - . Kapitalisatie is belangrijk in bash, maar (bijna) helemaal niet in batch. Batch-variabelenamen kunnen spaties bevatten, bash-variabelenamen niet. Uiteindelijk zijn beide manieren om de opdrachtregel te manipuleren en ermee te communiceren. Vanzelfsprekend is er een redelijk grote hoeveelheid overlap tussen de mogelijkheden van de twee systemen.

Opmerkingen

  • bitsadmin is verouderd ten gunste van de PowerShell-cmdlet BITS maar werkt nog steeds vanaf Windows 10 versie 1607
  • certutil scheidt paren van hexadecimale cijfers met een spatie, dus md5sum retourneert een voorbeeldwaarde van d41d8cd98f00b204e9800998ecf8427e , terwijl certutil dezelfde waarde weergeeft als d4 1d 8c d9 8f 00 b2 04 e9 80 09 98 ec f8 42 7e
  • Om naar een ander station te cd (bijvoorbeeld van C: naar D :) moet de vlag /d worden gebruikt
  • del kan mappen niet verwijderen, gebruik in plaats daarvan rm
  • grep is zoveel krachtiger dan find en findstr , het is bijna niet eerlijk om ze te vergelijken; find heeft geen regex-mogelijkheden en findstr heeft extreem beperkte regex-mogelijkheden ( [az]{2} is geen geldige syntax, maar [az][az] is)
  • for lussen op de Windows-opdrachtprompt kunnen alleen variabelenamen met één teken worden gebruikt; dit is de enige keer dat de namen van batchvariabelen hoofdlettergevoelig zijn
  • for lussen op de opdrachtprompt gebruikt u ook de variabele vorm %A plaats van %A% - for lussen in batch-scripts gebruikt u de variabele vorm %%A
  • md automatisch alle benodigde bovenliggende mappen, terwijl mkdir de vlag -p nodig heeft
  • rem mag niet worden gebruikt als inline-commentaar, tenzij dit wordt voorafgegaan door een &
  • :: mag helemaal niet als inline commentaar worden gebruikt en mag ook niet binnen een codeblok worden gebruikt (set haakjes)
  • Merk op dat sommige Windows-commando's zoals ping nog steeds - als vlaggen gebruiken

Batchopdrachten en hun Bash-equivalenten

Partij Bash Beschrijving
command /? man command Toont de hulp voor opdracht
bitsadmin wget of curl Downloadt een extern bestand
certutil -hashfile file_name MD5 md5sum file_name Hiermee wordt de MD5-controlesom van bestandsnaam opgehaald
cd pwd Toont de huidige map
cd directory cd directory Wijzigt de huidige map naar de opgegeven map
cls clear Wist het scherm
copy cp Kopieert een bestand of bestanden van een bronpad naar een doelpad
date date Toont de datum of stelt deze in op basis van gebruikersinvoer
del rm Wist een bestand of bestanden
dir ls geeft een lijst met bestanden en mappen in de huidige map weer
echo echo Geeft tekst op het scherm weer
exit return Sluit een script of subroutine af
exit logout Sluit de opdrachtprompt of terminal
fc diff Vergelijkt de inhoud van twee bestanden
find "string" file_name grep "string" file_name Zoekt naar bestandsnaam op tekenreeks
findstr "string" file_name grep "string" file_name Zoekt naar bestandsnaam op tekenreeks
for /F %A in (fileset*) do something for item in fileset*; do; something; done Doe iets voor elk bestand in een set bestanden
for /F %A in ('command') do something `command` Retourneert de uitvoer van een opdracht
for /L %A in (first,increment,last) do something for item in `seq first increment last`; do; something; done Begint eerst en telt in stappen totdat deze als laatste is bereikt
forfiles find Zoekt naar bestanden die aan bepaalde criteria voldoen
if "%variable%"=="value" ( if [ "variable"="value" ]; then Vergelijkt twee waarden
ipconfig ifconfig Toont IP-informatie
md mkdir Maakt nieuwe mappen
mklink ln -s Creëert een symbolische link
more more Geeft één uitvoerscherm tegelijk weer
move mv Verplaatst een bestand of bestanden van een bronpad naar een doelpad
pause read -p "Press any key to continue" Pauzeert de scriptuitvoering totdat de gebruiker op een knop drukt
popd popd Verwijdert het bovenste item uit de mapstapel en gaat naar de nieuwe bovenste map
pushd pushd Voegt de huidige map toe aan de mapstapel en gaat naar de nieuwe bovenste map
ren mv Hernoemt bestanden
rem of :: # Geeft commentaar op een coderegel
rd rmdir Verwijdert lege mappen
rd /s rm -rf Verwijdert mappen ongeacht of ze leeg waren of niet
set variable=value variable=value Stelt de waarde van variabele in op waarde
set /a variable=equation variable=$((equation)) Voert wiskunde uit (batch kan alleen 32-bits gehele getallen gebruiken)
set /p variable=promptstring read -p "promptstring" variable Krijgt gebruikersinvoer en slaat deze op in variabele
shift shift Verschuift argumenten met 1 (of n indien opgegeven)
sort sort Sorteert uitvoer alfabetisch op regel
tasklist ps Toont een lijst met actieve processen
taskkill /PID processid kill processid Doodt het proces met PID processid
time /t date Toont de huidige tijd
type cat Toont de inhoud van een bestand
where which Zoekt in de huidige map en de PATH naar een bestand of opdracht
whoami id Toont de naam en groep van de huidige gebruiker

Batchvariabelen en hun Bash-equivalent

Partij Bash Beschrijving
%variable% $variable Een normale variabele
!variable! $variable Een variabele binnen een codeblok wanneer setlocal enabledelayedexpansion is ingeschakeld
%errorlevel% of ERRORLEVEL $? Retourneert de status van de vorige opdracht: 0 indien succesvol, 1 (of iets anders) indien niet
%1 , %2 , %3 , enz. $1 , $2 , $3 , etc. De parameters die aan een script worden gegeven
%* $* Alle parameters die aan een script worden gegeven


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow