Recherche…


Introduction

echo peut être utilisé pour contrôler et produire la sortie.

Syntaxe

  • ECHO [ON | DE]
  • Message ECHO
  • ECHO (message
  • ÉCHO(

Paramètres

Paramètre Détails
ON | DE Peut être ON ou OFF (insensible à la casse)
message Toute chaîne (sauf ON ou OFF lorsqu'elle est utilisée sans ( )

Remarques

  • echo. affichera également une chaîne vide. Cependant, cela est plus lent que echo( car echo. Recherchera un fichier nommé "echo". Ce n'est que si ce fichier n'existe pas que la commande fonctionnera, mais cette vérification le ralentit.
  • echo: se comportera comme echo( sauf si le message ressemble à un chemin de fichier, par exemple echo:foo\..\test.bat . Dans ce cas, l'interpréteur verra echo:foo comme nom de dossier, strip echo:foo\..\ (car il semble juste pour entrer dans le répertoire echo:foo puis le laisser à nouveau) puis exécuter test.bat , qui n'est pas le comportement souhaité.

Affichage des messages

Pour afficher "du texte", utilisez la commande:

echo Some Text

Cela affichera la chaîne Some Text suivie d'une nouvelle ligne.

Pour afficher les chaînes On et Off (insensible à la casse) ou la chaîne vide, utilisez un ( au lieu d'espace blanc:

echo(ON
echo(
echo(off

Cela va sortir:

ON

off

Il est également courant d'utiliser l' echo. pour sortir une ligne vide, mais s'il vous plaît voir les remarques pour lesquelles ce n'est pas la meilleure idée.

Pour afficher du texte sans inclure un CR / LF, utilisez la commande suivante:

<nul set/p=Some Text

Cette commande tentera de définir la variable appelée la chaîne vide à l'entrée de l'utilisateur après une invite. Le fichier nul étant redirigé vers la commande avec <nul , la commande abandonnera dès qu’elle essaiera de la lire et seule la chaîne d’invite sera laissée. L'utilisateur n'ayant jamais saisi de nouvelle ligne, il n'y a pas de saut de ligne.

Réglage d'écho

Le paramètre echo détermine si l’écho de commande est activé ou désactivé. C'est ce qu'un exemple de programme ressemble avec la commande en écho (par défaut):

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

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

C:\Windows\System32>exit

Voici à quoi ça ressemble avec echo off :

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

Obtenir et configurer

Pour obtenir (afficher) le paramètre d'écho, utilisez echo sans paramètres:

> echo
ECHO is on.

Pour définir le paramètre d'écho, utilisez l' echo avec on ou off :

> echo off

> echo
ECHO is off.

> echo on

> echo
ECHO is on.

Notez qu'avec ces exemples, l'invite a été représentée par > . Lorsque vous modifiez le paramètre d'écho, l'invite apparaît et disparaît, mais cela crée des exemples peu clairs.

Notez qu'il est possible d'empêcher qu'une commande ne soit répercutée même lorsque l'écho est activé, en plaçant un caractère @ avant la commande.

Echo produit tout littéralement

Les devis seront produits tels quels:

echo "Some Text"
"Some Text"

Les jetons de commentaire sont ignorés:

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!

Toutefois, echo restituera toujours les variables - voir Utilisation des variables - et les caractères spéciaux restent actifs:

echo hello && echo world
hello
world

Echo à la sortie du fichier

Façons de créer un fichier avec la commande 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)

Sortie sur le chemin

Un petit problème que vous pourriez rencontrer lors de cette opération:

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)

Mais alors comment on le fait? Eh bien, c'est en fait extrêmement simple ... Lorsque vous tapez un chemin ou un nom de fichier contenant un espace dans son nom, n'oubliez pas d'utiliser "quotes"

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

Mais que faire si vous voulez créer un fichier qui génère un nouveau fichier?

echo message > file1.bat > example.bat

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

Alors comment on fait ça?

echo message ^> file1.bat > example.bat

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

Même chose pour d'autres choses en lot

Si vous n'avez pas appris quelles sont les variables et les déclarations, alors vous ne comprendrez probablement pas ce qui suit: cliquez ici pour en savoir plus sur les variables | cliquez ici pour en savoir plus sur les déclarations "if"

Variables:

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

Si nous ne voulons pas que "text" soit affiché mais simplement "% example%", alors écrivez:

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

déclarations autres:

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

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

pour sortir toute la ligne, nous écrivons:

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

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

Si la variable est égale à "bonjour" alors elle dira "vrai", sinon elle dira "faux"

@Écho off

@echo off empêche l' @echo off l'invite et du contenu du fichier de commandes, de sorte que seule la sortie est visible. Le @ rend également masquée la sortie de la commande echo off .

Faire tourner l'écho sur les parenthèses intérieures

Dans l'exemple suivant, echo on prendra effet après la fin du contexte entre parenthèses:

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

Pour "activer" l'écho dans un contexte de parenthèses (y compris les commandes FOR et IF ), vous pouvez utiliser la macro FOR / f :

@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
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow