batch-file
Eko
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 änecho(
eftersomecho.
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 somecho(
, om intemessage
ser ut som en filväg, t.ex.echo:foo\..\test.bat
. I det här fallet kommer tolken att seecho:foo
som mappnamn, stripecho:foo\..\
(eftersom det verkar bara för att gå in i katalogekotecho:foo
sedan lämna det igen) kör sedantest.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 på (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 ###
)