Réponses:
C'est une solution intéressante que je n'ai jamais vue auparavant. Permettez-moi d'essayer d'expliquer:
echo %path%
. Cela affichera tous les répertoires sur une seule ligne séparée par des points-virgules ( ;
)%path:a=b%
qui remplacera tous les a
caractères parb
echo.
est utilisé pour imprimer une nouvelle ligne&
est utilisé pour séparer les commandes, par exemple echo line1&echo line2
imprime deux lignes;
par rien, puis imprimer une nouvelle ligne». Je ne trouve aucune documentation à ce sujet, c'est juste mon interprétation. Franchement, je ne savais même pas que c'était possible, mais voilà. MISE À JOUR Mon interprétation de cette étape semble être fausse et est mieux expliquée par wizzwizz4 .echo path
? %% est-il utilisé pour les variables?
set greeting=Hello
et ensuite echo %greeting%
. Confusément, PATH
se trouve être à la fois une commande et une variable, donc taper la commande path
, ou echo %path%
aura le même résultat.
$PATH
par exemple.
echo.
n'est pas "la commande pour imprimer une nouvelle ligne". Ceci est l'interpréteur de commandes de Microsoft pour Windows NT, cmd
; et echo.
est simplement la commande pour imprimer un élément path en s'assurant que si l'élément path est vide, il ne passe pas à l' autre fonctionnalité deecho
. Le premier echo
devrait vraiment être un echo.
trop.
Ceci utilise la substitution de variable en ligne de commande. %path:;=&echo.%
signifie " %path%
, mais remplacez tous les ;
s par &echo.
". Cela signifie qu'avec set path=C:\Windows\System32;C:\Windows\;;C:\Python37;
:
echo %path:;=&echo.%
devient:
echo C:\Windows\System32&echo.C:\Windows\&echo.&echo.C:\Python37&echo.
Étant donné qu'il &
s'agit d'un séparateur de commandes, cela équivaut à:
echo C:\Windows\System32
echo.C:\Windows\
echo.
echo.C:\Python37
echo.
En raison des caprices de DOS Batch, echo.
est identique à echo
sauf quand il n'y a rien après. Si tel est le cas, il n'imprime simplement rien, au lieu de vous dire s'il ECHO
est activé ou désactivé. Cela rendra la sortie:
C:\Users\wizzwizz4> echo %path:;&echo.%
C:\Windows\System32
C:\Windows\
C:\Python37
C:\Users\wizzwizz4>
Vraiment, cela devrait être echo.%path:;=&echo.%
pour tenir compte du cas où %PATH%
commence par un ;
, mais cette commande est quand même assez intelligente.
Entrer dans des détails détaillés, devrait vraiment echo(
être utilisé à la place de echo.
. C'est parce que echo.
peut avoir des problèmes lorsque vous avez un fichier appelé echo
, et est lent car il doit vérifier le disque ( %CD%
et je pense aussi tous %PATH%
) à chaque fois qu'il s'exécute. (Je n'ai pas de copie de Windows, je ne peux donc pas le vérifier moi-même; est-ce juste %CD%
ou n'importe où dans %PATH%
le echo
fichier que la présence du fichier affectera echo.
, et que fait-il?)
echo)
, mais je ne m'en souviens pas vraiment. ;-(
echo.
est celui que les gens circulaient le plus il y a des années. C'est celui de nombreux livres. L'efficacité n'est pas le problème. Comportement loufoque lorsque divers fichiers existent. Lorsque j'ai écrit un remplacement 32 bits pour le 16 bits cmd
dans OS / 2, la rupture des noms de commande à ces caractères de ponctuation et ce comportement d'analyse très irrégulier est l'une des choses que je n'ai pas délibérément dupliqué et que j'ai mis sur le documenté liste des différences. J'ai echodot
plutôt fait une commande externe , que l'on pourrait alias comme on echo.
le souhaite.
echo(
est la seule version sûre.
echo.
peut ne pas fonctionner .