Sök…


Introduktion

echo kan användas för att styra och producera utdata.

Syntax

  • ECHO [ON | AV]
  • ECHO-meddelande
  • ECHO (meddelande
  • EKO(

parametrar

Parameter detaljer
PÅ | AV Kan antingen vara ON eller OFF (orsakskänslig)
meddelande Alla strängar (utom ON eller OFF när de används utan ( )

Anmärkningar

  • echo. kommer också att visa en tom sträng. Detta är emellertid långsammare än echo( eftersom echo. Söker efter en fil med namnet "eko". Bara om den här filen inte finns kommer kommandot att fungera, men den här kontrollen gör den långsammare.
  • echo: kommer att uppträda precis som echo( , om inte message ser ut som en filväg, t.ex. echo:foo\..\test.bat . I det här fallet kommer tolken att se echo:foo som mappnamn, strip echo:foo\..\ (eftersom det verkar bara för att gå in i katalogekot echo:foo sedan lämna det igen) kör sedan test.bat , vilket inte är önskat beteende.

Visar meddelanden

För att visa "Lite text", använd kommandot:

echo Some Text

Detta ger strängen Some Text följt av en ny rad.

Om du vill visa strängarna On och Off (skiftlägeskänsliga) eller den tomma strängen använder du en ( istället för vitrum:

echo(ON
echo(
echo(off

Detta kommer att matas ut:

ON

off

Det är också vanligt att använda echo. för att skriva ut en tom linje, men se kommentarerna till varför detta inte är den bästa idén.

För att visa text utan att inkludera en CR / LF, använd följande kommando:

<nul set/p=Some Text

Detta kommando försöker ställa in variabeln som kallas den tomma strängen till användarinmatningen efter en prompt. nul filen omdirigeras till kommandot med <nul , så kommandot kommer att ge upp så snart det försöker läsa från det och bara prompsträngen kommer att finnas kvar. Eftersom användaren aldrig har skrivit en ny rad, finns det ingen radmatning.

Ekoinställning

Ekoinställningen avgör om kommandotekning är på eller av. Så här ser ett exempelprogram ut med kommandoteket (standard):

C:\Windows\System32>echo Hello, World!
Hello, World!

C:\Windows\System32>where explorer
C:\Windows\System32\explorer.exe

C:\Windows\System32>exit

Så här ser det ut med eko av :

Hello, World!
C:\Windows\System32\explorer.exe

Komma och ställa in

För att få (visa) ekoinställningen, använd echo utan parametrar:

> echo
ECHO is on.

För att ställa in ekoinställningen, använd echo med on eller off :

> echo off

> echo
ECHO is off.

> echo on

> echo
ECHO is on.

Observera att med dessa exempel har prompten representerats av > . När du ändrar ekoinställningen visas och försvinner prompten, men det är oklara exempel.

Observera att det är möjligt att förhindra att ett kommando återkallas även när ekot är på, genom att placera ett @ -tecken före kommandot.

Echo visar allt bokstavligen

Citat kommer att matas ut som det är:

echo "Some Text"
"Some Text"

Kommentatokens ignoreras:

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 kommer emellertid fortfarande att mata ut variabler - se variabel användning - och specialtecken träder fortfarande i kraft:

echo hello && echo world
hello
world

Echo output till fil

Sätt att skapa en fil med ekokommandot:

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)

Utgång till sökväg

Ett litet problem du kan stöta på när du gör detta:

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)

Men hur gör vi det? Det är faktiskt extremt enkelt ... När du skriver en sökväg eller filnamn som har ett utrymme ingår i dess namn, kom ihåg att använda "citat"

echo Hello how are you? > "C:\Users\Ben Tearzz\Desktop\example.bat"
(This will make a file on MY Desktop)

Men tänk om du vill skapa en fil som matar ut en ny fil?

echo message > file1.bat > example.bat

(This is NOT going to output:
"message > file1.bat" to example.bat

Hur gör vi det här?

echo message ^> file1.bat > example.bat

(This will output: 
"message > file1.bat" to example.bat

Samma sak gäller andra saker i batch

Om du inte har lärt dig vad variabler och uttalanden är kommer du förmodligen inte att förstå följande: Klicka här för att lära dig om variabler | Klicka här för att lära dig om "if" -uttalanden

variabler:

set example="text"
echo %example% > file.bat
(This will output "text" to file.bat)

om vi inte vill att det ska matas ut "text" utan bara% exempel% skriver du:

echo ^%example^% > file.bat
(This will output "%example%" to file.bat)

annat uttalanden:

else = ||
if ^%example^%=="Hello" echo True || echo False > file.bat

(This will output:
if %example%=="Hello" echo True

för att mata ut hela linjen skriver vi:

if ^%example^%=="Hello" echo True ^|^| echo False > file.bat

This will output:
if %example%=="Hello" echo True || echo False

Om variabeln är lika med "Hej" kommer den att säga "Sann", annars säger den "Falsk"

@Echo off

@echo off förhindrar snabbt och innehållet i batchfilen från att visas, så att endast utgången är synlig. @ Gör utgången echo off kommandot echo off dold.

Slår eko på insidan inom parentes

I följande exempel kommer echo on att träda i kraft efter det att parentesets sammanhang har uppnåtts:

@echo off
(
    echo on
    echo ##
)
echo $$

För att "aktivera" eko på i parentes-sammanhang (inklusive FOR och IF kommandon) kan du använda FOR / f-makro :

@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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow