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 dan echo( omdat echo. 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 als echo( , tenzij het message op een bestandspad lijkt, bijv. echo:foo\..\test.bat . In dit geval ziet de interpreter echo:foo als mapnaam, strip echo:foo\..\ (omdat het alleen lijkt om de directory- echo:foo verlaat het dan opnieuw) voer dan test.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 ###
)


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