Bonjour à tous je suis nouveau sur le forum et je débute en batch. Je suis bloqué sur un script mon but est de supprimer une chaine de caractère dans une série de fichiers passés en paramètre grace à un call dans une boucle for voici mon script :
Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 @echo off REM création des fichiers de travail set fichierCommandes=C:\Script\Resultats\commandes.txt set fichierReq=C:\Script\Resultats\Req_ set fichierTemp=C:\Script\Resultats\Temp_ REM appel au fichiers de requetes a exécuter set fichiersql=C:\Script\Generation_XML.sql REM positionnement dans le répertoire dans le quel les fichiers résultat seront cd C:\Script REM lecture des commandes for /f "delims=" %%i in ('type %fichierCommandes%') do ( sqlcmd -y 0 -S mabase -v NumCommande ="%%i" -i %fichiersql% -o %fichierReq%%%i call remplace.cmd "
" "" %fichierReq%%%i>%fichierTemp%%%i ) PAUSE
le code de mon programme remplace.cmd :
Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 REM @echo off SETLOCAL ENABLEEXTENSIONS SETLOCAL DISABLEDELAYEDEXPANSION if "%~1"=="" findstr "^::" "%~f0"&GOTO:EOF for /f "tokens=1,* delims=]" %%A in ('"type %3|find /n /v """') do ( set "line=%%B" if defined line ( call set "line=echo.%%line:%~1=%~2%%" for /f "delims=" %%X in ('"echo."%%line%%""') do %%~X ) ELSE echo. )
le contenu de mon fichier commande.txt :
760336
761672
j'obtiens comme message : "La syntaxe du nom de fichier, de répertoire ou de volume est incorrecte."
Je sais que le problème ne vient pas de mon appel à sqlcmd car mes deux fichiers "Req_760336" et "Req_761672" sont créés et contiennent les bonnes données. Mon but c'est juste de parcourir les deux fichiers et d'enlever la chaine "
" de chaque ligne ou elle est présente dans chacun des fichiers.
Merci d'avance pour votre aide à tous.






Répondre avec citation





Partager