Zoeken…


Invoering

Een handige functie van batchbestanden is dat ze hiermee bestanden kunnen maken. In dit gedeelte wordt uitgelegd hoe u bestanden maakt met batchcode.

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:

  1. echo Hello World > myfile.txt slaat "Hello World" op in myfile.txt

  2. echo your name is %name% >> myfile.txt voegt "jouw naam is xxxx" toe aan myfile.txt

  3. dir 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


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