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 di echo( come echo. 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 come echo( , a meno che il message non assomigli ad un percorso file, ad esempio echo:foo\..\test.bat . In questo caso, l'interprete vedrà echo:foo come nome di una cartella, strip echo:foo\..\ (perché appare solo per entrare nella directory echo:foo quindi lasciarlo di nuovo) quindi eseguire test.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 ###
)


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow