Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Aide sur programmation BATCH

7 views
Skip to first unread message

FL

unread,
Dec 13, 2011, 8:13:06 AM12/13/11
to
Bonjour TLM

Je suis en train d'étudier la programmation en BATCH.

Je voudrais comprendre parfaitement cette partie de code,relative à une
boucle, principalement la ligne Do(....

Quelqu'un pourrait-il avoir la gentillesse de me décortiquer cette ligne
point par point SVP...
-pourquoi un tilde devant x (%%~x) ?
- " NUL 2 et pas NUL simplement ?
- " & 1 ?

Merci d'avance pour votre meilleure attention.


For %%x in (
"HKLM\Software\ADatumCorporation\OpenCandy"
"HKLM\Software\Applian Technologies\OpenCandy"
"HKLM\Software\Canneverbe Limited\OpenCandy"
"HKLM\Software\Cheat Engine\OpenCandy"
"HKLM\Software\Dexpot\OpenCandy"
"HKLM\Software\INMEDIAKG\OpenCandy"
"HKLM\Software\Magical Jelly Bean\OpenCandy"

"HKLM\Software\Classes\Installer\Products\869B3124435D5C24E8DD39E69D9C214F\SourceList
/V LastUsedSource"

"HKLM\Software\Classes\Installer\Products\869B3124435D5C24E8DD39E69D9C214F\SourceList\Net
/v 1"

"HKLM\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\869B3124435D5C24E8DD39E69D9C214F\InstallProperties
/v InstallSource"

"HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\{4213B968-D534-42C5-8EDD-936ED9C912F4}
/v InstallSource"
"HKLM\Software\eRightSoft\OpenCandy"
) Do (
reg.exe query "%%~x" >NUL 2>&1& IF NOT ERRORLEVEL 1 (
echo Clé détectée : %%~x >> %homedrive%\Rapport.txt ))

Jean-Claude BELLAMY

unread,
Dec 13, 2011, 10:56:46 AM12/13/11
to
Le mardi 13/12/2011 14:13:06, FL a écrit dans le message
<news:4ee74f61$0$3676$426a...@news.free.fr> ce qui suit :
> Bonjour TLM
>
> Je suis en train d'étudier la programmation en BATCH.
>
> Je voudrais comprendre parfaitement cette partie de code,relative à une
> boucle, principalement la ligne Do(....
>
> Quelqu'un pourrait-il avoir la gentillesse de me décortiquer cette ligne
> point par point SVP...
> -pourquoi un tilde devant x (%%~x) ?

Et l'aide en ligne, elle sert à faire joli ?

FOR /?

Tu pourras y lire (entre autres) :
"De plus, la substitution de références de variables FOR a été
améliorée.Vous pouvez maintenant utiliser la syntaxe optionnelle
suivante :

%~I - étend %I en supprimant les guillemets (")
[...]"


> - " NUL 2 et pas NUL simplement ?
> - " & 1 ?
"0" désigne le flux standard STDIN (entrées)
"1" désigne le flux standard STDOUT (sorties)
"2" désigne le flux standard STDERR (erreurs)

2>&1
signifie que l'on redirige le flux des erreurs vers le flux standard
des sorties.

Comme les sorties sont redirigées vers NUL (= pas de sorties), les
erreurs le seront également (= on ignore les erreurs éventuelles).
Et comme on fait immédiatement après un test sur ERRORLEVEL, on saura
quand il n'y a pas d'erreur (enregistré dans un fichier "rapport.txt")

--

May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP Expert IT Pro]
http://www.bellamyjc.org ou http://jc.bellamy.free.fr


FL

unread,
Dec 13, 2011, 2:22:22 PM12/13/11
to
Le 13/12/2011 16:56, Jean-Claude BELLAMY a bien voulu écrire :


> Et l'aide en ligne, elle sert à faire joli ?
>
> FOR /?
>
> Tu pourras y lire (entre autres) :
> "De plus, la substitution de références de variables FOR a été
> améliorée.Vous pouvez maintenant utiliser la syntaxe optionnelle
> suivante :
>
> %~I - étend %I en supprimant les guillemets (")
> [...]"

Bonsoir Maître JCB ! Quel honneur !
Oui effectivement... je n'y ai pas penser... La ligne (Do) qui me
bloquait m'y a détourné.

>
>> - " NUL 2 et pas NUL simplement ?
>> - "& 1 ?
> "0" désigne le flux standard STDIN (entrées)
> "1" désigne le flux standard STDOUT (sorties)
> "2" désigne le flux standard STDERR (erreurs)
>
> 2>&1
> signifie que l'on redirige le flux des erreurs vers le flux standard
> des sorties.
>
> Comme les sorties sont redirigées vers NUL (= pas de sorties), les
> erreurs le seront également (= on ignore les erreurs éventuelles).
> Et comme on fait immédiatement après un test sur ERRORLEVEL, on saura
> quand il n'y a pas d'erreur (enregistré dans un fichier "rapport.txt")

Je commence à être dans le dur... Là... c'est déjà pointu !!!
Un grand merci.
Bonne fin de soirée.


0 new messages