voila, je souhaite creer un batch qui me permet de recuperer des checklists sur differents serveurs, les mettre toutes les unes a la suite des autres, ajouter le nom du serveur en debut de checklits, et supprimer une partie de chaque checklist qui ne m'est pas utile
je parviens a tout faire sauf une partie, quand je recherche la ligne "fin de checklist" a supprimer, celle-ci, en fonction des serveurs est composée de 2,3 ou 4 decimales, en fonction des jours, et je ne parviens pas a faire en sorte que ca fonctionne
je vous mets ce que j'ai fait:
Code : Tout sélectionner
net use m: /delete
net use m: \\WSC0029\Documents\%username%\Documents
set _m=M:\checklists\
set _n=%_n%
set MYFILES=\\m898900\exploit\Florian\
md \\WSC0029\Documents\%username%\Documents\checklists
ftp -n -s:%MYFILES%login-ftp.scr
for /f "tokens=1,2,3 delims=/ " %%a in ('date /t') do set _n=%%a.%%b.%%c
for /f "tokens=1,2 delims=: " %%a in ('time /t') do set _n=%_n%_%%ah%%bmin
@echo off
rem TRAITEMENT PRORASIX
rem supprime les lignes vides
for /f "tokens=*" %%I in (%_m%checklist_prorasix) do echo. %%I >> %_m%checklist_prorasix_bis
rem recherche la chaine de caractere "fin de checktist" et son numero de ligne
type %_m%checklist_prorasix_bis | find /n /i "FIN de CHECKLIST" > %_m%checklist_prorasix_ter
for /f %%i in (%_m%checklist_prorasix_ter) do set numligne=%%i
if "%numligne%" == "" goto rientrouvee
set numligne=%numligne:~1,3%
echo %numligne%
rem compte les lignes et affiche la sortie dans un fichier texte
Set compt=
setlocal enableDelayedExpansion
FOR /f "Tokens=*" %%a in ('Type %_m%checklist_prorasix_bis') Do (
Set /A compt +=1
If !compt! LEQ %numligne% echo %%a >> %_m%checklist_prorasix_final
)
endlocal
rem redirection du méssage vers un fichier espion 01.txt:
echo. > 01.txt
echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx >> 01.txt
echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx PRORASIX xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx >> 01.txt
echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx >> 01.txt
echo. >> 01.txt
rem redirection du contenu du fichier file.txt vers le fichier espion 01.txt ( pas décrasement ) :
type %_m%checklist_prorasix_final >> 01.txt
rem en écrasant les deux résultats dans le fichier on fait :
type 01.txt > %_m%checklist_prorasix_final
rem effacement du fichier 01.txt
del 01.txt
pause
rem TRAITEMENT NOSOUCIX
for /f "tokens=*" %%I in (%_m%checklist_nosoucix) do echo. %%I >> %_m%checklist_nosoucix_bis
type %_m%checklist_nosoucix_bis | find /n /i "FIN de CHECKLIST" > %_m%checklist_nosoucix_ter
for /f %%i in (%_m%checklist_nosoucix_ter) do set numligne=%%i
if "%numligne%" == "" goto rientrouvee
set numligne=%numligne:~1,2%
echo %numligne%
Set compt=
setlocal enableDelayedExpansion
FOR /f "Tokens=*" %%a in ('Type %_m%checklist_nosoucix_bis') Do (
Set /A compt +=1
If !compt! LEQ %numligne% echo %%a >> %_m%checklist_nosoucix_final
)
endlocal
echo. > 01.txt
echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx >> 01.txt
echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx NOSOUCIX xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx >> 01.txt
echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx >> 01.txt
echo. >> 01.txt
type %_m%checklist_nosoucix_final >> 01.txt
type 01.txt > %_m%checklist_nosoucix_final
del 01.txt
etc etc, et ce sur une vingtaine de serveurs
puis:
copy %_m%checklist_prorasix_final+%_m%checklist_nosoucix_final /A \\WSC0029\Documents\%username%\Documents\checklists\checklist_globale_%_n%
del %_m%checklist_prorasix_final %_m%checklist_nosoucix_final
del %_m%checklist_prorasix_bis %_m%checklist_nosoucix_bis
del %_m%checklist_prorasix_ter %_m%checklist_nosoucix_ter
net use m: /delete
start notepad \\WSC0029\Documents\%username%\Documents\checklists\checklist_globale_%_n%
start %comspec% /c "mode 60,10&title Checklists&color 1e&echo.&echo. Le fichier a ete cree dans&echo.&echo. \\WSC0029\Documents\%username%\Documents\checklists\checklist_globale_%_n%&echo. presser une touche pour quitter&pause>NUL"
Code : Tout sélectionner
set numligne=%numligne:~1,3%
d'avance merci