batch-file
Bestanden maken met Batch
Zoeken…
Invoering
Syntaxis
- echo (typ hier wat je maar wilt) >> (bestandsnaam)
- echo (naam van variabele) >> (bestandsnaam)
Opmerkingen
Als er een bestand bestaat, zal >
het bestand overschrijven en >>
aan het einde van het bestand toevoegen. Als een bestand niet bestaat, maken beide een nieuw bestand.
Ook voegt de echo
opdracht automatisch een nieuwe regel toe na uw string.
Zo
echo 1 > num.txt
echo 1 > num.txt
echo 2 >> num.txt
maakt het volgende bestand:
1
2
Niet dit:
1 1 2
of
1 2
Bovendien kunt u niet zomaar een enkele regel in een tekstbestand wijzigen. U moet het hele bestand lezen, het in uw code wijzigen en vervolgens opnieuw naar het hele bestand schrijven.
Redirection
Formaat:
[command] [> | >>] [filename]
>
slaat de uitvoer van [opdracht] op in [bestandsnaam].
>>
voegt de uitvoer van [commando] toe aan [bestandsnaam].
Voorbeelden:
echo Hello World > myfile.txt
slaat "Hello World" op in myfile.txtecho your name is %name% >> myfile.txt
voegt "jouw naam is xxxx" toe aan myfile.txtdir C:\ > directory.txt
slaat de map van C: \ op in directory.txt
Echo om bestanden te maken
Manieren om een bestand te maken met de echo-opdracht:
ECHO. > example.bat (creates an empty file called "example.bat")
ECHO message > example.bat (creates example.bat containing "message")
ECHO message >> example.bat (adds "message" to a new line in example.bat)
(ECHO message) >> example.bat (same as above, just another way to write it)
Als u een bestand wilt maken via de opdracht ECHO
, in een specifieke map op uw computer, kunt u een probleem tegenkomen.
ECHO Hello how are you? > C:\Program Files\example.bat
(This will NOT make a file in the folder "Program Files", and might show an error message)
Maar hoe doen we het dan? Nou, het is eigenlijk heel eenvoudig ... Als je een pad of bestandsnaam typt met een spatie in de naam, vergeet dan niet om "aanhalingstekens" te gebruiken
ECHO Hello how are you? > "C:\Program Files\example.bat"
(This will create "example.bat" in the folder "Program Files")
Maar wat als u een bestand wilt maken dat een nieuw bestand uitvoert?
ECHO message > file1.bat > example.bat
(example.bat is NOT going to contain "message > file1.bat")
example.bat will just contain "message"... nothing else
Hoe doen we dit dan? Welnu, hiervoor gebruiken we het ^
-symbool.
ECHO message ^> file1.bat > example.bat
(example.bat is going to contain "message > file1.bat")
Hetzelfde geldt voor andere dingen in batch
De volgende stap vereist dat u enige kennis heeft van variabelen en verklaringen:
klik hier voor meer informatie over variabelen | klik hier voor meer informatie over if- en anders-verklaringen
Variabelen:
SET example="text"
ECHO %example% > file.bat
(This will output "text" to file.bat)
als we niet willen dat het "tekst" uitvoert maar gewoon% example% schrijft, schrijf dan:
ECHO ^%example^% > file.bat
(This will output "%example%" to file.bat)
IF / ELSE-verklaringen:
ELSE statements are written with "pipes" ||
IF ^%example^%=="Hello" ECHO True || ECHO False > file.bat
(example.bat is going to contain "if %example%=="Hello" echo True")
[it ignores everything after the ELSE statement]
om de hele regel uit te voeren, doen we hetzelfde als voorheen.
IF ^%example^%=="Hello" ECHO True ^|^| ECHO False > file.bat
This will output:
IF %example%=="Hello" ECHO True || ECHO False
Als de variabele gelijk is aan "Hallo", dan zal het "Waar" zeggen, ELDERS zal het "Onwaar" zeggen
De uitvoer van veel opdrachten opslaan
Veel ECHO
opdrachten gebruiken om een batchbestand te maken:
(
echo echo hi, this is the date today
echo date /T
echo echo created on %DATE%
echo pause >nul
)>hi.bat
De opdrachttolk behandelt de hele sectie tussen haakjes als een enkele opdracht en slaat vervolgens alle uitvoer op in hi.bat
.
hi.bat
bevat nu:
echo hi, this is the date today
date /T
echo created on [date created]
pause >nul