Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[CMD] FOR et IF sur plusieurs lignes

4 réponses
Avatar
Lotre
Bonsoir,

Les instructions FOR et IF
qui autorisent une organisation sur plusieurs lignes
avec des parenthèses judicieusement placées
interdisent [ certaines | les ] lignes de commentaire...

En tout cas c'est ce qu'il me semble avoir constaté.
Je n'ai pourtant jamais rien lu dans aucune doc
qui évoque ce point...

Exemples :

Ceci ne fonctionne pas normalement

IF %TRUC%==%MACHIN% (
:: je fais boum
@echo Boum > sortie.txt
) ELSE (
:: rien
@echo RiEn > sortie.txt
)

alors que ceci fonctionne :

IF %TRUC%==%MACHIN% (
@echo Boum > sortie.txt
) ELSE (
@echo RiEn > sortie.txt
)

Plus bizarre :

Ceci ne fonctionne pas :

For /F "skip=1 tokens=2 delims=:" %%u in (%CH%) do (
echo %%u >> Sortie.txt
:: truc
)

mais ceci fonctionne

For /F "skip=1 tokens=2 delims=:" %%u in (%CH%) do (
:: truc
echo %%u >> Sortie.txt
)

Quelqu'un aurait-il une explication "raisonnable" ?

Merci d'avance,

HB

4 réponses

Avatar
Michel Claveau - MVP
(envoyé via news:msnews.microsoft.commicrosoft.public.fr.scripting)

Salut !

Le problème est lié au @ (devant echo)
Met un @echo off au début du batch, puis supprime les autres @
et ton batch sera capable de passer le bug de l'an 2010...

@-salutations
--
MCI
Avatar
Lotre
Bonjour,


Michel Claveau - MVP wrote:
(envoyé via
news:msnews.microsoft.commicrosoft.public.fr.scripting)

Salut !

Le problème est lié au @ (devant echo)



Ah ? | :o)

Met un @echo off au début du batch, puis supprime les autres @
et ton batch sera capable de passer le bug de l'an 2010...



Je vais vérifier ça avec des " IF + ELSE" commentés.

mézalor, cela n'explique pas le pb similaire
avec les deux exemples de FOR :

Rat-Pelle :

Ceci ne fonctionne pas :

For /F "skip=1 tokens=2 delims=:" %%u in (%CH%) do (
echo %%u >> Sortie.txt
:: commentaire-truc
)

mais ceci fonctionne

For /F "skip=1 tokens=2 delims=:" %%u in (%CH%) do (
:: commentaire-truc
echo %%u >> Sortie.txt
)

Amicalement,

HB
Avatar
Th.A.C
Le 31/12/2009 14:58, Lotre a écrit :


mézalor, cela n'explique pas le pb similaire
avec les deux exemples de FOR :



As-tu essayé de revenir au commentaire classique avec un bon vieux 'REM'
au lieu des 2 double-points?
Avatar
Lotre
Bonjour,

Th.A.C wrote:

As-tu essayé de revenir au commentaire classique avec un bon vieux
'REM' au lieu des 2 double-points?



Effectivement, le comportement n'est pas le même :

Ceci ne fonctionne pas :

For /F "skip=1 tokens=2 delims=:" %%u in (%CH%) do (
echo %%u >> Sortie.txt
:: commentaire-truc
)

Ceci fonctionne :

For /F "skip=1 tokens=2 delims=:" %%u in (%CH%) do (
echo %%u >> Sortie.txt
REM commentaire-truc
)

... bizarotankétranj' ...

HB