batch-file
Verschillen tussen Batch (Windows) en Terminal (Linux)
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
-
bitsadminis verouderd ten gunste van de PowerShell-cmdlet BITS maar werkt nog steeds vanaf Windows 10 versie 1607 -
certutilscheidt paren van hexadecimale cijfers met een spatie, dusmd5sumretourneert een voorbeeldwaarde vand41d8cd98f00b204e9800998ecf8427e, terwijlcertutildezelfde waarde weergeeft alsd4 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/dworden gebruikt -
delkan mappen niet verwijderen, gebruik in plaats daarvanrm -
grepis zoveel krachtiger danfindenfindstr, het is bijna niet eerlijk om ze te vergelijken;findheeft geen regex-mogelijkheden enfindstrheeft extreem beperkte regex-mogelijkheden ([az]{2}is geen geldige syntax, maar[az][az]is) -
forlussen op de Windows-opdrachtprompt kunnen alleen variabelenamen met één teken worden gebruikt; dit is de enige keer dat de namen van batchvariabelen hoofdlettergevoelig zijn -
forlussen op de opdrachtprompt gebruikt u ook de variabele vorm%Aplaats van%A%-forlussen in batch-scripts gebruikt u de variabele vorm%%A -
mdautomatisch alle benodigde bovenliggende mappen, terwijlmkdirde vlag-pnodig heeft -
remmag 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
pingnog 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