[PROBLEME] BATCH & lignes a supprimer...
Posté : 30 nov. 2010 18:11
bonjour
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:
voila, c'est un peut trop compliqué pour moi la,
quand je change le "3" par le nombre de decimale reel de la ligne mon script fonctionne...
d'avance merci
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