Page 1 sur 1

msdos - boucle for - ecrire un ) dans un fichier texte

Posté : 18 avr. 2015 23:44
par eric4510
Bonjour :D

dans un MSDOS.bat
dans une boucle for (dos windows 7)
je veux ecrire un ) dans un fichier de sortie puis du texte :blue:

comment isoler le ) ???
pour qu'il l'interprete pas comme un fin de la commande for
je veux qu'il ecrive ")" puis erreur dans le fichier de sortie
hors la ainsi il s'arrete apres le ''
et retourne une erreur MSDOS "erreur inattendue

merci d'avance de votre reponse !! :)
bonne journee
eric

cls
for /F %%z in (%file-def%) do (
echo %%z
echo '') ERREUR >>%file-out-sql%
)

Re: msdos - boucle for - ecrire un ) dans un fichier texte

Posté : 21 avr. 2015 16:07
par pir2pir
Le script ci-dessous n'est pas élégant, il ressemble à de la programmation en Basic de ma jeunesse avec les GOTO :D mais il fonctionne
La fonction do ( ...) à la sortie d'une boucle FOR pose toujours des problèmes avec la commande ECHO
Il vaut mieux l'éviter. Je propose un contournement avec un CALL. La variable %%i est récupérée dans la fonction appelée par la variable nommé %1

@echo off
for /f "tokens=3" %%i in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Prefetcher" ^| find "LastDiskLayoutTimeString"') do call :_StringFind %%i

:_StringNotFind
REM instructions ici
Goto _suite

:_StringFind
set DateLastDiskLayoutTimeString=%1
echo DateLastDiskLayoutTimeString:%DateLastDiskLayoutTimeString%
echo ) ERREUR >>LogErreurs.txt
goto :eof

:_suite
pause

Re: msdos - boucle for - ecrire un ) dans un fichier texte

Posté : 21 avr. 2015 19:43
par eric4510
merci pir2pir

la solution simple c'est ^^)^

cordialement