Besoin d'aide pour un script windows
Modérateur : WIN32-[GG]
Besoin d'aide pour un script windows
Bonjour,
j'ai besoin d’écrire un petit script pour incrémenter un "nometchiffre" de 1 à 40000 uniquement la valeur numérique, la partie alphabétique reste pareille.
à titre d'exemple:
J'ai un fichier TXT, qui contient:
JOB001
5 lignes de texte
Puis
JOB002
5 lignes de texte
JOB003
5 lignes de texte
Etc..
je souhaite modifier toutes les valeurs JOBXXX par JOB001 jusque JOB40000
je suis preneur de tout conseil et aide pour réaliser ce petit script.
Merci par avance.
j'ai besoin d’écrire un petit script pour incrémenter un "nometchiffre" de 1 à 40000 uniquement la valeur numérique, la partie alphabétique reste pareille.
à titre d'exemple:
J'ai un fichier TXT, qui contient:
JOB001
5 lignes de texte
Puis
JOB002
5 lignes de texte
JOB003
5 lignes de texte
Etc..
je souhaite modifier toutes les valeurs JOBXXX par JOB001 jusque JOB40000
je suis preneur de tout conseil et aide pour réaliser ce petit script.
Merci par avance.
-
- SuperBatcher
- Messages : 105
- Enregistré le : 24 janv. 2017 13:41
Re: Besoin d'aide pour un script windows
Bonjour,
Tu ne peux pas modifier le fichier directement, mais tu peux en créer un nouveau à partir du fichier source :
Tu ne peux pas modifier le fichier directement, mais tu peux en créer un nouveau à partir du fichier source :
Code : Tout sélectionner
@echo off
Setlocal enableextensions enableDelayedExpansion
set source=fichier.txt
set destination=nouveau.txt
set /a nombre=0
for /f "tokens=*" %%A in (%source%) do (
if "%%A"=="" (echo.>> %destination%) else (
(echo %%A | findstr "JOB" > nul) && (set /a nombre+=1 & echo JOB!nombre! >> %destination%) || (echo %%A >> %destination%)
)
)
notepad %destination%
Endlocal
exit
Re: Besoin d'aide pour un script windows
Bonjour,
je vous remercie pour ce script qui fonctionne bien je viens de procéder un test.
Par contre, je ne comprends pas pourquoi le script s’arrête au chiffre 5038??
j'ai tenté de comprendre le déroulement du script mais je ne vois pas cette limite.
Merci par avance de votre aide.
je vous remercie pour ce script qui fonctionne bien je viens de procéder un test.
Par contre, je ne comprends pas pourquoi le script s’arrête au chiffre 5038??
j'ai tenté de comprendre le déroulement du script mais je ne vois pas cette limite.
Merci par avance de votre aide.
Re: Besoin d'aide pour un script windows
Bonjour,
je vous remercie pour ce script qui fonctionne bien je viens de procéder un test. j'aurai souhaité que les chiffres soient sur trois positions et non pas une comme actuellement avec ce script.
Par contre, je ne comprends pas pourquoi le script s’arrête au chiffre 5038??
j'ai tenté de comprendre le déroulement du script mais je ne vois pas cette limite.
Merci par avance de votre aide.
je vous remercie pour ce script qui fonctionne bien je viens de procéder un test. j'aurai souhaité que les chiffres soient sur trois positions et non pas une comme actuellement avec ce script.
Par contre, je ne comprends pas pourquoi le script s’arrête au chiffre 5038??
j'ai tenté de comprendre le déroulement du script mais je ne vois pas cette limite.
Merci par avance de votre aide.
-
- SuperBatcher
- Messages : 105
- Enregistré le : 24 janv. 2017 13:41
Re: Besoin d'aide pour un script windows
Bonjour,
Il n'y a pas de limitation, la variable s'incrémente de 1 à chaque fois que la chaine contient le mot "JOB".
Je ne comprend pas non plus pourquoi ça s'arrête, peut-être qu'un expert pourra nous éclairer.
Concernant l'affichage du nombre sur 3 digits, voilà la modification :
Il n'y a pas de limitation, la variable s'incrémente de 1 à chaque fois que la chaine contient le mot "JOB".
Je ne comprend pas non plus pourquoi ça s'arrête, peut-être qu'un expert pourra nous éclairer.
Concernant l'affichage du nombre sur 3 digits, voilà la modification :
Code : Tout sélectionner
@echo off
Setlocal enableextensions enableDelayedExpansion
set source=sortie.txt
set destination=nouveau.txt
set /a nombre=0
for /f "tokens=*" %%A in (%source%) do (
if "%%A"=="" (echo.>> %destination%) else (
(echo %%A | findstr /i "JOB" > nul) && (call :action) || (echo %%A >> %destination%)
)
)
notepad %destination%
Endlocal
exit
:action
set /a nombre+=1
if !nombre! LSS 100 (set nombre=0!nombre!)
if !nombre! LSS 10 (set nombre=0!nombre!)
echo JOB!nombre! >> %destination%
goto :eof
rem
Re: Besoin d'aide pour un script windows
Bonjour,
Je pense que la raison du blocage est dans ta réponse.
En fait tu dis "à chaque fois que la chaine contient le mot "JOB"." Donc il faudrait que mon fichier SOURCE contienne au moins les 40 000 lignes soit autant de fois que je souhaite avoir en Destination?
Est-ce exact ou peut-on simplifier ce scenario?
Merci de ton aide.
Je pense que la raison du blocage est dans ta réponse.
En fait tu dis "à chaque fois que la chaine contient le mot "JOB"." Donc il faudrait que mon fichier SOURCE contienne au moins les 40 000 lignes soit autant de fois que je souhaite avoir en Destination?
Est-ce exact ou peut-on simplifier ce scenario?
Merci de ton aide.
-
- SuperBatcher
- Messages : 105
- Enregistré le : 24 janv. 2017 13:41
Re: Besoin d'aide pour un script windows
Bonjour,
Je ne suis pas sûr d'avoir compris ton dernier message, qu'entends-tu par "simplifier ce scénario" ?
Je ne suis pas sûr d'avoir compris ton dernier message, qu'entends-tu par "simplifier ce scénario" ?
Re: Besoin d'aide pour un script windows
Bonjour,
La question est doit-on avoir en Source un fichier contenant 40 000 fois le mot JOB pour qu'en sortie on puisse avoir les nombres de 1 à 40 000 ?
Quand je dis simplifier, cela veut dire, peut-on avoir un fichier Source avec uniquement une fois le mot job et le script boucle jusque 40 000?
j’espère que c'est plus clair ainsi.
merci de votre aide.
La question est doit-on avoir en Source un fichier contenant 40 000 fois le mot JOB pour qu'en sortie on puisse avoir les nombres de 1 à 40 000 ?
Quand je dis simplifier, cela veut dire, peut-on avoir un fichier Source avec uniquement une fois le mot job et le script boucle jusque 40 000?
j’espère que c'est plus clair ainsi.
merci de votre aide.
-
- SuperBatcher
- Messages : 105
- Enregistré le : 24 janv. 2017 13:41
Re: Besoin d'aide pour un script windows
Concernant ta première question : dans l'état actuel du script, oui
Concernant ta deuxième question : oui tout est possible, mais dans ce cas je ne comprend pas ce que tu veux faire avec le numéro, tu veux numéroter chaque ligne ?
Concernant ta deuxième question : oui tout est possible, mais dans ce cas je ne comprend pas ce que tu veux faire avec le numéro, tu veux numéroter chaque ligne ?