Echo une ligne vierge (vide) vers la console à partir d'un fichier Windows batch [dupliquer]

cette question a déjà une réponse ici:

lors de la sortie de messages d'État à la console à partir d'un fichier Windows batch, je veux sortir lignes vierges pour casser la sortie. Comment dois-je faire cette?

91
demandé sur DavidRR 2013-12-20 00:27:46

3 réponses

L'une des trois options ci-dessous fonctionne pour vous:

echo[

echo(

echo. 

par exemple:

@echo off
echo There will be a blank line below
echo[
echo Above line is blank
echo( 
echo The above line is also blank.
echo. 
echo The above line is also blank.
108
répondu Sunny 2013-12-20 05:29:18

Note: Bien que ma réponse originale ait suscité plusieurs critiques, j'ai décidé que je pouvais faire beaucoup mieux. Vous pouvez trouver ma réponse originale (simpliste et mal orientée) dans l'historique d'édition.

si Microsoft avait eu l'intention de fournir un moyen de produire une ligne vierge de cmd.exe , Microsoft aurait sûrement documenté une telle opération simple. C'est cette omission qui m'a motivé à poser cette question.

donc, parce qu'un moyen pour la sortie d'une ligne blanche de cmd.exe est et non documentée, on pourrait sans doute considérer toute suggestion pour la façon d'accomplir ceci comme un hack . Cela signifie qu'il n'y a pas de méthode connue pour sortir une ligne vierge de cmd.exe qui est garantie pour travailler (ou travailler efficacement) dans toutes situations.

en gardant cela à l'esprit, voici une discussion des méthodes qui ont été recommandées pour la sortie d'une ligne vierge de cmd.exe . Toutes les recommandations sont basées sur des variations de la commande echo .


echo.

bien que cela fonctionne dans beaucoup sinon la plupart des situations, il faut éviter parce qu'il est plus lent que ses alternatives et peut en fait échouer (voir ici , ici , et ici ). Plus précisément, cmd.exe cherche d'abord un fichier nommé echo et tente de le démarrer. Si un fichier nommé echo existe dans le répertoire courant, echo. échouera avec:

'echo.' is not recognized as an internal or external command,
operable program or batch file.

echo:
echo\

à la fin de cette réponse , l'auteur fait valoir que ces commandes peut être lent, par exemple s'ils sont exécutés à partir d'un emplacement de disque réseau. La raison spécifique de la lenteur potentielle n'est pas indiquée. Mais on peut en déduire que cela peut avoir quelque chose à voir avec l'accès au système de fichiers. (Peut-être parce que : et \ ont un sens particulier dans un chemin du système de fichiers Windows?)

cependant, certains peuvent considérer ces options comme sûres puisque : et \ ne peuvent pas apparaître dans un nom de fichier. Pour cela ou d'une autre raison, echo: est recommandé par SS64.com ici .


echo(
echo+
echo,
echo/
echo;
echo=
echo[
echo]

cette longue discussion comprend ce que je crois être tous ces. Plusieurs de ces options sont recommandées dans cette réponse SO ainsi. Dans la discussion Citée, ce post se termine avec ce qui semble être une recommandation pour echo( et echo: .

ma question en haut de cette page ne spécifie pas de version de Windows. Mon expérimentation sur Windows 10 indique que tous de ces produire une ligne vierge, indépendamment de savoir si les fichiers nommés echo , echo+ , echo, , ..., echo] existent dans le répertoire courant. (Notez que ma question précède la sortie de Windows 10. Donc je concède la possibilité que les anciennes versions de Windows peuvent se comporter différemment.)

Dans cette réponse , @jeb affirme que echo( toujours . Pour moi, @jeb de réponse, cela implique que d'autres options sont moins fiables, mais ne fournit aucun détail sur le pourquoi. Notez que @jeb a fourni beaucoup de contenu précieux à d'autres références que j'ai citées dans cette réponse.


Conclusion: Faire pas utiliser echo. . Parmi les nombreuses autres options que j'ai rencontrées dans les sources que j'ai citées, l'appui à ces deux options semble faire autorité:

echo(
echo:

Mais je n'ai pas trouvé aucune preuve solide que l'utilisation de l'un de ces sera toujours sans problème.


Exemple D'Utilisation:

@echo off
echo Here is the first line.
echo(
echo There is a blank line above this line.

Résultats escomptés:

Here is the first line.

There is a blank line above this line.
56
répondu DavidRR 2017-05-23 11:55:19

il y a souvent la pointe à utiliser 'écho.

mais c'est lent, et il pourrait échouer avec un message d'erreur, comme cmd.exe recherche d'abord un fichier nommé 'echo' (sans l'extension) et uniquement lorsque le fichier n'existe pas il affiche une ligne vide.

vous pouvez utiliser echo( . C'est environ 20 fois plus rapide, et il fonctionne toujours. Le seul inconvénient pourrait être que ça paraît bizarre.

plus sur les différents ECHO:/\ variantes est à DOS conseils: ECHO. Ne donne pas le texte ou la ligne vide .

38
répondu jeb 2015-10-21 08:11:26