batch-file
Eco
Ricerca…
introduzione
echo
può essere usato per controllare e produrre output.
Sintassi
- ECHO [ON | OFF]
- Messaggio ECHO
- ECHO (messaggio
- ECO(
Parametri
Parametro | Dettagli |
---|---|
ON | OFF | Può essere ON o OFF (senza distinzione tra maiuscole e minuscole) |
Messaggio | Qualsiasi stringa (tranne ON o OFF se usato senza ( ) |
Osservazioni
-
echo.
mostrerà anche una stringa vuota. Tuttavia, questo è più lento diecho(
comeecho.
cercherà un file chiamato "echo". Solo se questo file non esiste il comando funzionerà, ma questo controllo lo rende più lento. -
echo:
si comporterà proprio comeecho(
, a meno che ilmessage
non assomigli ad un percorso file, ad esempioecho:foo\..\test.bat
. In questo caso, l'interprete vedràecho:foo
come nome di una cartella, stripecho:foo\..\
(perché appare solo per entrare nella directoryecho:foo
quindi lasciarlo di nuovo) quindi eseguiretest.bat
, che non è il comportamento desiderato.
Visualizzazione dei messaggi
Per visualizzare "Some Text", usa il comando:
echo Some Text
Questo produrrà la stringa Some Text
seguita da una nuova riga.
Per visualizzare le stringhe On
e Off
(senza distinzione tra maiuscole e minuscole) o la stringa vuota, utilizzare un (
anziché uno spazio bianco:
echo(ON
echo(
echo(off
Questo produrrà:
ON off
È anche comune usare echo.
per generare una riga vuota, ma per favore vedi le osservazioni sul motivo per cui questa non è la migliore idea.
Per visualizzare il testo senza includere un CR / LF, utilizzare il seguente comando:
<nul set/p=Some Text
Questo comando tenterà di impostare la variabile chiamata stringa vuota sull'input dell'utente dopo un prompt. Il file nul
viene reindirizzato al comando con <nul
, quindi il comando si arrenderà non appena tenta di leggere da esso e verrà lasciata solo la stringa del prompt. Perché l'utente non ha mai digitato una nuova riga, non c'è alcun avanzamento.
Impostazione dell'eco
L'impostazione dell'eco determina se l'eco del comando è attivato o disattivato. Ecco come appare un programma di esempio con il comando echoing on (predefinito):
C:\Windows\System32>echo Hello, World!
Hello, World!
C:\Windows\System32>where explorer
C:\Windows\System32\explorer.exe
C:\Windows\System32>exit
Questo è ciò che appare con l'eco spento :
Hello, World!
C:\Windows\System32\explorer.exe
Ottenimento e impostazione
Per ottenere (visualizzare) l'impostazione dell'eco, usa echo
senza parametri:
> echo
ECHO is on.
Per impostare l'eco, usa echo
con on
o off
:
> echo off
> echo
ECHO is off.
> echo on
> echo
ECHO is on.
Si noti che con questi esempi, il prompt è stato rappresentato da >
. Quando si modifica l'impostazione dell'eco, il prompt apparirà e scomparirà, ma questo rende gli esempi non chiari.
Notare che è possibile impedire che un comando venga echeggiato anche quando è attivo echo, posizionando un carattere @
prima del comando.
Echo emette tutto letteralmente
Le virgolette saranno emesse così com'è:
echo "Some Text"
"Some Text"
I token di commento vengono ignorati:
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!
Tuttavia, echo
continuerà a generare variabili - vedi Uso delle variabili - e i caratteri speciali avranno ancora effetto:
echo hello && echo world
hello world
Uscita dell'eco su file
Modi per creare un file con il comando echo:
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)
Uscita sul percorso
Un piccolo problema che potresti incontrare quando fai questo:
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)
Ma allora come lo facciamo? Beh, in realtà è estremamente semplice ... Quando digiti un percorso o un nome di file che ha uno spazio incluso nel suo nome, ricorda di usare "virgolette"
echo Hello how are you? > "C:\Users\Ben Tearzz\Desktop\example.bat"
(This will make a file on MY Desktop)
Ma cosa succede se si desidera creare un file che emette un nuovo file?
echo message > file1.bat > example.bat
(This is NOT going to output:
"message > file1.bat" to example.bat
Allora come lo facciamo?
echo message ^> file1.bat > example.bat
(This will output:
"message > file1.bat" to example.bat
Lo stesso vale per altre cose in batch
Se non hai imparato quali sono le variabili e le affermazioni, probabilmente non capirai quanto segue: clicca qui per conoscere le variabili | clicca qui per conoscere le dichiarazioni "if"
variabili:
set example="text"
echo %example% > file.bat
(This will output "text" to file.bat)
se non vogliamo che produca "testo" ma semplicemente% esempio% quindi scrivi:
echo ^%example^% > file.bat
(This will output "%example%" to file.bat)
altre dichiarazioni:
else = ||
if ^%example^%=="Hello" echo True || echo False > file.bat
(This will output:
if %example%=="Hello" echo True
per produrre l'intera riga scriviamo:
if ^%example^%=="Hello" echo True ^|^| echo False > file.bat
This will output:
if %example%=="Hello" echo True || echo False
Se la variabile è uguale a "Hello", allora dirà "True", altrimenti dirà "False"
@ Elimina
@echo off
impedisce la visualizzazione del prompt e del contenuto del file batch, in modo che solo l'output sia visibile. Il @
rende anche nascosto l'output del comando echo off
.
Girando l'eco sulle parentesi interne
Nell'esempio seguente, l' echo on
avrà effetto dopo il raggiungimento del fine del contesto delle parentesi:
@echo off
(
echo on
echo ##
)
echo $$
Per "attivare" l'eco in un contesto di parentesi (inclusi i comandi FOR
e IF
), è possibile utilizzare FOR / f macro :
@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 ###
)