batch-file
Echo
Zoeken…
Invoering
echo
kan worden gebruikt om output te regelen en te produceren.
Syntaxis
- ECHO [ON | UIT]
- ECHO-bericht
- ECHO (bericht
- ECHO(
parameters
Parameter | Details |
---|---|
AAN | UIT | Kan ON of OFF (niet hoofdlettergevoelig) |
bericht | Elke tekenreeks (behalve ON of OFF indien gebruikt zonder ( ) |
Opmerkingen
-
echo.
zal ook een lege string weergeven. Dit is echter langzamer danecho(
omdatecho.
een bestand met de naam "echo" zal zoeken. Alleen als dit bestand niet bestaat, zal de opdracht werken, maar deze controle maakt het langzamer. -
echo:
gedraagt zich net alsecho(
, tenzij hetmessage
op een bestandspad lijkt, bijv.echo:foo\..\test.bat
. In dit geval ziet de interpreterecho:foo
als mapnaam, stripecho:foo\..\
(omdat het alleen lijkt om de directory-echo:foo
verlaat het dan opnieuw) voer dantest.bat
, wat niet het gewenste gedrag is.
Berichten weergeven
Gebruik de opdracht om 'Tekst' weer te geven:
echo Some Text
Dit zal de string Some Text
gevolgd door een nieuwe regel.
Gebruik a (
plaats van witruimte) om de tekenreeksen On
en Off
(hoofdlettergevoelig) of de lege reeks weer te geven:
echo(ON
echo(
echo(off
Dit levert het volgende op:
ON off
Het is ook gebruikelijk om echo.
te gebruiken echo.
om een lege regel uit te voeren, maar lees de opmerkingen waarom dit niet het beste idee is.
Gebruik de volgende opdracht om tekst weer te geven zonder CR / LF:
<nul set/p=Some Text
Met deze opdracht wordt geprobeerd de variabele met de naam de lege tekenreeks in te stellen op de gebruikersinvoer na een prompt. Het nul
bestand wordt doorgestuurd naar het commando met <nul
, dus het commando geeft het op zodra het ervan probeert te lezen en alleen de promptstring blijft over. Omdat de gebruiker nooit een nieuwe regel heeft getypt, is er geen linefeed.
Echo instelling
De echo-instelling bepaalt of het echo-commando aan of uit staat. Dit is hoe een voorbeeldprogramma eruitziet met commando-echo op (standaard):
C:\Windows\System32>echo Hello, World!
Hello, World!
C:\Windows\System32>where explorer
C:\Windows\System32\explorer.exe
C:\Windows\System32>exit
Dit is hoe het eruit ziet met echo uitgeschakeld :
Hello, World!
C:\Windows\System32\explorer.exe
Krijgen en instellen
Om (display) de echo instelling, gebruik echo
zonder parameters:
> echo
ECHO is on.
Gebruik de echo
met on
of off
om de echo-instelling in te stellen:
> echo off
> echo
ECHO is off.
> echo on
> echo
ECHO is on.
Merk op dat bij deze voorbeelden de prompt is vertegenwoordigd door >
. Wanneer u de echo-instelling wijzigt, verschijnt en verdwijnt de prompt, maar dat geeft onduidelijke voorbeelden.
Merk op dat het mogelijk is om te voorkomen dat een commando wordt geëchood, zelfs wanneer echo is ingeschakeld, door een @
-teken vóór het commando te plaatsen.
Echo geeft alles letterlijk weer
Citaten worden uitgevoerd zoals ze zijn:
echo "Some Text"
"Some Text"
Reactietokens worden genegeerd:
echo Hello World REM this is not a comment because it is being echoed!
Hello World REM this is not a comment because it is being echoed!
echo
zal echter nog steeds variabelen uitvoeren - zie Variabel gebruik - en speciale tekens worden nog steeds van kracht:
echo hello && echo world
hello world
Echo-uitvoer naar bestand
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)
Uitvoer naar pad
Een klein probleem dat u hierbij kunt tegenkomen:
echo Hello how are you? > C:\Users\Ben Tearzz\Desktop\example.bat
(This will NOT make a file on the Desktop, 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:\Users\Ben Tearzz\Desktop\example.bat"
(This will make a file on MY Desktop)
Maar wat als u een bestand wilt maken dat een nieuw bestand uitvoert?
echo message > file1.bat > example.bat
(This is NOT going to output:
"message > file1.bat" to example.bat
Hoe doen we dit dan?
echo message ^> file1.bat > example.bat
(This will output:
"message > file1.bat" to example.bat
Hetzelfde geldt voor andere dingen in batch
Als je niet hebt geleerd wat variabelen en uitspraken zijn, begrijp je het volgende waarschijnlijk niet: klik hier voor meer informatie over variabelen | klik hier voor meer informatie over 'if'-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)
anders verklaringen:
else = ||
if ^%example^%=="Hello" echo True || echo False > file.bat
(This will output:
if %example%=="Hello" echo True
om de hele regel uit te voeren die we schrijven:
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", staat er "Waar", anders staat er "Onwaar"
@Echo uit
@echo off
voorkomt dat de prompt en de inhoud van het batchbestand worden weergegeven, zodat alleen de uitvoer zichtbaar is. De @
maakt de uitvoer van het echo off
commando ook verborgen.
Echo inschakelen tussen haakjes
In het volgende voorbeeld wordt echo on
nadat het einde van de haakjescontext is bereikt:
@echo off
(
echo on
echo ##
)
echo $$
Om echo in een haakjescontext (inclusief FOR
en IF
opdrachten) te "activeren", kunt u de FOR / f-macro gebruiken :
@echo off
setlocal
:: echo on macro should followed by the command you want to execute with echo turned on
set "echo_on=echo on&for %%. in (.) do"
(
%echo_on% echo ###
)