IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Comment compresser un certains nombre de fichier défnis pour controler le nombre


Sujet :

Scripts/Batch

  1. #21
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 161
    Par défaut
    Hello Barnabe !

    j'espere que tu vas bien: désolé pour le retard de réponse mais j'étais absent.

    Je viens de tester en remplacant la ligne mentionnée dans ton dernier post pour créér une archive avec le reste mais ca ne fonctionne pas et il fait meme l'inverse c'est à dire que mainternant il crééé une archive avec les 10 lots restants mais les 40 premiers ont disparu alors que je m'attendais à avoir sur les 40 lots:

    - 1 lots zippé d 30 : exemple: BNPPLS_FRA_2_20180814T958_00001018.7z

    - 1 lots zippé avec les 10 autres: BNPPLS_FRA_2_20180814T958_00001019.7z

    ici dans le resultat j'ai 1 lots zippé de 10 et les 30 envolés je ne sais où :-)

    tu vois ?

  2. #22
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    Salut jam92400, essaie avec cette toute dernière version :

    Code : 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    @echo off
    chcp 1252 >nul
    
    set files=eml
    
    powershell -Command "get-childItem D:\CFT\Tempus\Upload\BPM_UAT\SCAN_FRA\*.%files% | rename-item -newname { $_.name -replace '!','' }"
    
    Setlocal EnableExtensions EnableDelayedExpansion
    
    cd /d %~dp0 || exit /b 1
    
    
    Rem ---- définition des variables---
    	
    	set currentpath=%~dp0
    	set today=%date:~6,4%%date:~3,2%%date:~0,2%
    	set logdir=%currentpath%log
    	REM set logfile=%logdir%\scan_fra_%today%_%time:~0,2%h%time:~3,2%%time:~6,2%.log
    	set /p LotNum=<%currentpath%conf\lot.conf
    	set LotNum=!LotNum: =!
    	set logfile=%logdir%\ScanFra_%today%_LOT_!LotNum!.log
    	set /a LotNumNext=!LotNum!+1
    	
    echo lot actuel = !LotNum!
    echo lot suivant = !LotNumNext!
    
    set hour=%time:~0,2%
    set min=%time:~3,2%
    set horodatage=%today%T%hour%%min%
    set horodatage=!horodatage: =!
    
    	set repWork=%~dp0WORK_FRA
    	set repScan=%~dp0SCAN_FRA
    	set repArch=%~dp0ARCHIVE
    	set repRejet=%~dp0REJET
    	
    
    Rem ------------------------
    
    REM ---- Fonction pour compléter le numéro de lot avec des 0 devant pour respecter la taille de String 8 ----
    
    set FinalLotNum=00000000!LotNum!
    set FinalLotNum=!FinalLotNum:~-8!
    
    REM -----------fin bloc de fonction -------
    
    
    REM ---- Définiton du nom du zip en sortie -----------
    
    	set zipfile=BNPPLS_FRA_2_!horodatage!_!FinalLotNum!
    	set zipfile=!zipfile: =!
    
    REM ------- fin définition du nom de zip -----
    
    
    Rem ----Debut programme -------
    
    if not exist "%logdir%" (mkdir "%logdir%")
    
    (echo. & echo ########## Fichiers déplacés vers WORK_FRA
    echo.) >> !logfile!
    move "%repScan%\*.%files%" "%repWork%" >> !logfile!
    
    (echo. & echo. & echo ########## Fichiers déplacés vers REJET
    echo.) >> !logfile!
    2>nul move /y "%repScan%\*.*" "%repRejet%" >> !logfile!
    
    (echo. & echo.) >> !logfile!
    cd %repWork%
    
    REM ---
    
    set count=0
    set num=0
    set var=0
    
    if not exist "###" (mkdir "###")
    
    FOR %%I IN (*.%files%) DO (
    	
    	set /a count+=1
    	set /a num+=1
    	set index=0000!num!
    	set index=!index:~-5!
    	move "%%~I" "###\!zipfile!_!index!.%files%" >nul && echo [!index!] %%~I >> !logfile!
    	if !count! EQU 30 (call:archive)
    
    )
    if exist "###\*.%files%" (call:archive)
    rmdir /s /q "###"
    
    Rem "C:\Program Files\WinZip\Winzip8.1_FR\WINZIP32.exe" -a "!zipfile!.zip" "*.%files%" >> !logfile!
    Rem "C:\Program Files\7-Zip\7z.exe" a "!zipfile!.7z" "*.%files%" >> !logfile!
    
    Rem --- incrémentation du numéro de lot -----
    
    echo !LotNumNext! > %currentpath%conf\lot.conf
    
    Rem ----- Envoi CFT -----------
    set part=AUTOMATU
    set idf=WWDDIDEM
    set env=U
    
    REM D:\APPS\CFTG\scripts\cftxsend.bat -D "%part%" -I "%idf%" -F "%chemin%+%fichier%" -P "%env%_%fichier%" –O “RUSER=CANON01M,SUSER=10000000,SAPPL=0x515E7A98”
    REM D:\APPS\CFTG\scripts\cftxsend.bat -D "%part%" -I "%idf%" -F "!zipfile!.7z" -P "%env%_%zipfile%"
    REM D:\APPS\CFTG\scripts\cftxsend.bat -D "AUTOMATQ" -I "WWDDIDEM" -F "!zipfile!.7z" -P "Q_%zipfile%"
    REM D:\APPS\CFTG\scripts\cftxsend.bat -D "AUTOMATU" -I "WWDDIDEM" -F "!zipfile!.7z" -P "U_%zipfile%"
    
    Rem ----- fin envoi CFT -------
    
    notepad !logfile!
    exit /b 0
    
    
    :archive
    pushd "###"
    
    set count=0
    set /a var+=1
    set compteur=0000!var!
    set compteur=!compteur:~-5!
    
    7za.exe a "!zipfile!_!compteur!.7z" "*.%files%"
    
    (echo. & echo. & echo ########## Fichier déplacé vers ARCHIVE
    echo.) >> !logfile!
    move "!zipfile!_!compteur!.7z" "%repArch%" >nul && echo *** !zipfile!_!compteur!.7z *** >> !logfile!
    del /f /q "*.*"
    (echo. & echo.) >> !logfile!
    popd
    goto :eof
    Comme demandé les fichiers restants sont archivés également. J'ai un peu amélioré la lisibilité du fichier log, je te laisse découvrir ça.
    Pour l'instant je n'ai pas adapté la partie Envoi CFT, donc si elle ne fonctionne pas c'est normal.

    Après de multiples scénarios de tests, ce script fonctionne très bien chez moi, plus qu'à espérer qu'il en soit de même chez toi.

  3. #23
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 161
    Par défaut
    Salut Barnabe !!!

    tu es vraiment génial, j'ai rarement vu un expert en batch dos comme toi c'est bluffant et je te remercierais jamais assez pour ton aide: ton script est vraiment optimal et fontionne bien désormais!!

    Je viens de tester et j'aurais quelques remarques si tu peux m'ajuster le tir:

    Je vois dans les logs que tu fais déplacer des fichiers dans "REJET" => pourquoi ? en fait ce dossier REJET sert a ecarter tous les fichiers qui n'ont pas l'extension .EML et je crois comprendre dans ton script que toi tu l'utilse comme dossier tempo pour refaire un lot si le nombre de fichier > 30, c'est ca?

    De plus les 2 ou x lots créés doivent être considérés comme indépendant , or dans ton script tu créés des zip avec les meme numero de lot difféncié par un compteur à la fin "_00001 ou _0002". mais en fait il faut que les x lot de 30 créés soit avec des sequences differentes ainsi pour un lot de 30 par exemple et 1 autre de 10 on aurait:

    BNPPLS_FRA_2_20180907T1034_00001032.7z
    BNPPLS_FRA_2_20180907T1034_00001033.7z

    et non pas:

    BNPPLS_FRA_2_20180907T1034_00001032_00001
    BNPPLS_FRA_2_20180907T1034_00001032_00001

    Tu vois ?

    et pour le contenu des zip c'est pareil il faut que les sequences du coup ne se suivent pas pas mais reprenne à 0 pour un nouveau lot et donc avoir:

    BNPPLS_FRA_2_20180907T1034_00001032_0001
    BNPPLS_FRA_2_20180907T1034_00001032_0002
    BNPPLS_FRA_2_20180907T1034_00001032_0003
    BNPPLS_FRA_2_20180907T1034_00001032_000...
    BNPPLS_FRA_2_20180907T1034_00001032_00030

    puis dans le 2eme lot :

    BNPPLS_FRA_2_20180907T1034_00001033_0001
    BNPPLS_FRA_2_20180907T1034_00001033_0002
    BNPPLS_FRA_2_20180907T1034_00001033_0003
    BNPPLS_FRA_2_20180907T1034_00001033_000x


    et merci encore pour le fichier de log: faut juste du coup déplacer dans le dossier REJET la liste de tous les fichiers qui n'ont pas l'extension EML et si tu as besoin qu on créé un dossier tampon on peut le créér

    tu peux m'aider pour cette derniere ligne droite ?

    Merci tellement a toi

  4. #24
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    Salut Jam,

    Je vois dans les logs que tu fais déplacer des fichiers dans "REJET" => pourquoi ? en fait ce dossier REJET sert a ecarter tous les fichiers qui n'ont pas l'extension .EML et je crois comprendre dans ton script que toi tu l'utilse comme dossier tempo pour refaire un lot si le nombre de fichier > 30, c'est ca?
    ==>> non je n'utilise pas REJET comme dossier temporaire, en fait je n'ai pas réussi à structurer certaines infos dans le fichier log, c'est pour ça que ça donne l'impression que je l'utilise comme dossier temporaire, je vais supprimer ces infos



    Concernant les autres remarques je les ai prises en compte et voilà ce que ça donne :

    Code : 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    @echo off
    chcp 1252 >nul
    Setlocal EnableExtensions EnableDelayedExpansion
    
    cd /d %~dp0 || exit /b 1
    
    set files=eml
    
    powershell -Command "get-childItem D:\CFT\Tempus\Upload\BPM_UAT\SCAN_FRA\*.%files% | rename-item -newname { $_.name -replace '!','' }"
    
    
    :: -------------------------------------------------------
    :: Définition des variables
    :: -------------------------------------------------------
    	
    	set today=%date:~6,4%%date:~3,2%%date:~0,2%
    
    	set /p LotNum=<%~dp0conf\lot.conf
    	set LotNum=!LotNum: =!
    
    	set logfile=%~dp0log\ScanFra_%today%_LOT_!LotNum!.log
    
    	set horodatage=%today%T%time:~0,2%%time:~3,2%
    	set horodatage=!horodatage: =!
    
    	set repWork=%~dp0WORK_FRA
    	set repScan=%~dp0SCAN_FRA
    	set repArch=%~dp0ARCHIVE
    	set repRejet=%~dp0REJET
    
    
    :: -------------------------------------------------------
    :: Tri des fichiers selon l'extension à cibler
    :: -------------------------------------------------------
    
    if not exist "%logdir%" (mkdir "%logdir%")
    
    (echo. & echo ########## Fichiers déplacés vers WORK_FRA
    echo.) >> !logfile!
    move "%repScan%\*.%files%" "%repWork%" >> !logfile!
    
    (echo. & echo. & echo ########## Fichiers déplacés vers REJET
    echo.) >> !logfile!
    2>nul move /y "%repScan%\*.*" "%repRejet%" >> !logfile!
    
    (echo. & echo.) >> !logfile!
    
    
    :: -------------------------------------------------------
    :: Création des lots (30 fichiers maxi par lot)
    :: -------------------------------------------------------
    
    cd %repWork%
    
    set count=0
    set num=0
    
    if not exist "###" (mkdir "###")
    
    FOR %%I IN (*.%files%) DO (
    	
    	set /a count+=1
    	set /a num+=1
    	set index=00000!num!
    	set index=!index:~-5!
    
    	set FinalLotNum=00000000!LotNum!
    	set FinalLotNum=!FinalLotNum:~-8!
    
    	move "%%~I" "###\BNPPLS_FRA_2_!horodatage!_!FinalLotNum!_!index!.%files%" >nul
    	if !count! EQU 30 (call:archive)
    
    )
    if exist "###\*.%files%" (call:archive)
    rmdir /s /q "###"
    
    
    :: -------------------------------------------------------
    :: Fin du programme
    :: -------------------------------------------------------
    
    REM call :CFTG "D:\APPS\CFTG\scripts\cftxsend.bat" AUTOMATU WWDDIDEM U !zipfile!
    
    exit /b 0
    
    
    :: -------------------------------------------------------
    :: Fonction de création d'archive
    :: -------------------------------------------------------
    
    :archive
    
    cls & echo. & echo lot actuel = !LotNum!
    
    set zipfile=BNPPLS_FRA_2_!horodatage!_!FinalLotNum!
    set zipfile=!zipfile: =!
    
    pushd "###"
    
    set count=0
    set num=0
    
    7za.exe a "!zipfile!.7z" "*.%files%"
    
    (echo. & echo. & echo ########## Fichier déplacé vers ARCHIVE
    echo.) >> !logfile!
    move "!zipfile!.7z" "%repArch%" >nul && echo *** !zipfile!.7z *** >> !logfile!
    del /f /q "*.*"
    (echo. & echo.) >> !logfile!
    popd
    
    set /a LotNum+=1
    echo !LotNum! > %~dp0conf\lot.conf
    
    goto :eof
    
    
    :: -------------------------------------------------------
    :: Fonction pour envoi CFT
    :: -------------------------------------------------------
    
    :CFTG
    
    %1 -D "%~2" -I "%~3" -F "%chemin%+%fichier%" -P "%~4_%fichier%" –O “RUSER=CANON01M,SUSER=10000000,SAPPL=0x515E7A98”
    %1 -D "%~2" -I "%~3" -F "%~5.7z" -P "%~4_%~5"
    %1 -D "AUTOMATQ" -I "%~3" -F "%~5.7z" -P "Q_%~5"
    %1 -D "%~2" -I "%~3" -F "%~5.7z" -P "U_%~5"
    
    goto :eof
    J'ai transformé la partie "Envoi CFT" en une fonction paramétrée appelée (CALL) à la fin du programme, mais je n'ai pas ton application pour pouvoir tester le bon fonctionnement, à toi de vérifier.

    J'ai aussi supprimé les variables inutiles.

    J'espère que tout sera OK.

    Bon week-end.

  5. #25
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 161
    Par défaut
    Hello Barnabe !!

    Merci encore 10 000 fois pour cette nouvelle version qui est exactement ce qui est attendu !!! et ca marche encore une fois parfaitement pour la construction des lots !!

    J'ai testé la partie CFT mais ca plante avec une erreur comme quoi il ne trouve pas la fonction :CFTG

    Code : 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
    19
    
    lot actuel = 1042
    
    7-Zip [64] 16.04 : Copyright (c) 1999-2016 Igor Pavlov : 2016-10-04
    
    Scanning the drive:
    14 files, 0 bytes
    
    Creating archive: BNPPLS_FRA_2_20180910T1115_00001042.7z
    
    Items to compress: 14
    
    
    Files read from disk: 0
    Archive size: 202 bytes (1 KiB)
    Everything is Ok
    The system cannot find the batch label specified - CFTG
    C:\Users\adma31991>
    voilà le bout de code en gras en question (j'ai meme essayé en mettant toute la commande mais ko)

    Code : 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    @echo off
    chcp 1252 >nul
    Setlocal EnableExtensions EnableDelayedExpansion
    
    cd /d %~dp0 || exit /b 1
    
    set files=eml
    
    powershell -Command "get-childItem D:\CFT\Tempus\Upload\BPM_UAT\SCAN_FRA\*.%files% | rename-item -newname { $_.name -replace '!','' }"
    
    
    :: -------------------------------------------------------
    :: Définition des variables
    :: -------------------------------------------------------
    	
    	set today=%date:~6,4%%date:~3,2%%date:~0,2%
    
    	set /p LotNum=<%~dp0conf\lot.conf
    	set LotNum=!LotNum: =!
    
    	set logfile=%~dp0log\ScanFra_%today%_LOT_!LotNum!.log
    
    	set horodatage=%today%T%time:~0,2%%time:~3,2%
    	set horodatage=!horodatage: =!
    
    	set repWork=D:\CFT\Tempus\Upload\BPM_UAT\WORK_FRA\
    	set repScan=D:\CFT\Tempus\Upload\BPM_UAT\SCAN_FRA\
    	set repArch=D:\CFT\Tempus\Upload\BPM_UAT\ARCHIVE\
    	set repRejet=D:\CFT\Tempus\Upload\BPM_UAT\REJET\
    
    
    :: -------------------------------------------------------
    :: Tri des fichiers selon l'extension à cibler
    :: -------------------------------------------------------
    
    if not exist "%logdir%" (mkdir "%logdir%")
    
    (echo. & echo ########## Fichiers déplacés vers WORK_FRA
    echo.) >> !logfile!
    move "%repScan%\*.%files%" "%repWork%" >> !logfile!
    
    (echo. & echo. & echo ########## Fichiers déplacés vers REJET
    echo.) >> !logfile!
    2>nul move /y "%repScan%\*.*" "%repRejet%" >> !logfile!
    
    (echo. & echo.) >> !logfile!
    
    
    :: -------------------------------------------------------
    :: Création des lots (30 fichiers maxi par lot)
    :: -------------------------------------------------------
    
    cd %repWork%
    
    set count=0
    set num=0
    
    if not exist "###" (mkdir "###")
    
    FOR %%I IN (*.%files%) DO (
    	
    	set /a count+=1
    	set /a num+=1
    	set index=00000!num!
    	set index=!index:~-5!
    
    	set FinalLotNum=00000000!LotNum!
    	set FinalLotNum=!FinalLotNum:~-8!
    
    	move "%%~I" "###\BNPPLS_FRA_2_!horodatage!_!FinalLotNum!_!index!.%files%" >nul
    	if !count! EQU 30 (call:archive)
    
    )
    if exist "###\*.%files%" (call:archive)
    rmdir /s /q "###"
    
    
    :: -------------------------------------------------------
    :: Fin du programme
    :: -------------------------------------------------------
    
    call :CFTG "D:\APPS\CFTG\scripts\cftxsend.bat" AUTOMATU WWDDIDEM U !zipfile!
    exit /b 0
    
    
    :: -------------------------------------------------------
    :: Fonction de création d'archive
    :: -------------------------------------------------------
    
    :archive
    
    cls & echo. & echo lot actuel = !LotNum!
    
    set zipfile=BNPPLS_FRA_2_!horodatage!_!FinalLotNum!
    set zipfile=!zipfile: =!
    
    pushd "###"
    
    set count=0
    set num=0
    
    "C:\Program Files\7-Zip\7z.exe" a "!zipfile!.7z" "*.%files%"
    
    (echo. & echo. & echo ########## Fichier déplacé vers ARCHIVE
    echo.) >> !logfile!
    move "!zipfile!.7z" "%repArch%" >nul && echo *** !zipfile!.7z *** >> !logfile!
    del /f /q "*.*"
    (echo. & echo.) >> !logfile!
    popd
    
    set /a LotNum+=1
    echo !LotNum! > %~dp0conf\lot.conf
    
    goto :eof
    
    
    :: -------------------------------------------------------
    :: Fonction pour envoi CFT
    :: -------------------------------------------------------
    
    :CFTG
    
    rem D:\APPS\CFTG\scripts\cftxsend.bat -D "AUTOMATU" -I "WWDDIDEM" -F "%repWork%%zipfile%" -P "U_%zipfile%"
    
    %1 -D "%~2" -I "%~3" -F "%~5.7z" -P "U_%~5"
    
    goto :eof
    Autre point rapide le script ne créé qu'un fichier de log nommé avec le premier lot mais dont le contenu porte bien sur les 2 lots: il ne serait pas possible d'avoir 1 fichiers de log par lot créé ?

    Dans le test que je viens de faire j'ai deposé 44 fichiers dans le dossier de depot (scan_fra) puis j'ai lancé le bat.

    Resultat: 1 zip contenant 30 fichiers nommé xxxxx_000034 et 1 zip contenant 14 fichiers xxxx_00035

    mais 1 seul fichier de log nommé xxx_000034 contenant tout mais nommé "000034" donc peut porter à confusion.

    Le mieux serait peut être de faire qu'un seul fichier de log par jour et mettre tous les traitements ?

    qu'est ce qui est le plus simple pour toi ? 1 seul gros fichier journalier ou alors 1 fichier par lot traité?

    merci encore!!!!

  6. #26
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    C'est curieux je n'ai jamais été confronté à un message indiquant qu'un script ne trouve pas une fonction, on en apprend tous les jours
    Je ne sais vraiment pas comment corriger ça, tout marche très bien chez moi.

    Au niveau du fichier de log, voilà la méthode la plus simple pour moi :

    Code : 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    @echo off
    chcp 1252 >nul
    Setlocal EnableExtensions EnableDelayedExpansion
    
    cd /d %~dp0 || exit /b 1
    
    set files=eml
    
    powershell -Command "get-childItem D:\CFT\Tempus\Upload\BPM_UAT\SCAN_FRA\*.%files% | rename-item -newname { $_.name -replace '!','' }"
    
    
    :: -------------------------------------------------------
    :: Définition des variables
    :: -------------------------------------------------------
    
    if not exist "%~dp0ARCHIVE" (mkdir "%~dp0ARCHIVE")
    if not exist "%~dp0conf\lot.conf" (exit /b 1)
    if not exist "%~dp0log" (mkdir "%~dp0log")
    if not exist "%~dp0REJET" (mkdir "%~dp0REJET")
    if not exist "%~dp0SCAN_FRA\*.%files%" (exit /b 1)
    if not exist "%~dp0WORK_FRA" (mkdir "%~dp0WORK_FRA")
    	
    set today=%date:~6,4%%date:~3,2%%date:~0,2%
    
    set /p LotNum=<%~dp0conf\lot.conf
    set LotNum=!LotNum: =!
    
    set logfile=%~dp0log\ScanFra_%today%_LOT_!LotNum!.log
    
    set horodatage=%today%T%time:~0,2%%time:~3,2%
    set horodatage=!horodatage: =!
    
    
    :: -------------------------------------------------------
    :: Tri des fichiers selon l'extension à cibler
    :: -------------------------------------------------------
    
    (echo. & echo ########## Fichiers déplacés vers WORK_FRA
    echo.
    move "%~dp0SCAN_FRA\*.%files%" "%~dp0WORK_FRA"
    
    echo. & echo. & echo. & echo ########## Fichiers déplacés vers REJET
    echo.
    2>nul move /y "%~dp0SCAN_FRA\*.*" "%~dp0REJET"
    
    echo. & echo.) >> !logfile!
    
    if not exist "%~dp0WORK_FRA\*.%files%" (exit /b 1)
    
    
    :: -------------------------------------------------------
    :: Création des lots (30 fichiers maxi par lot)
    :: -------------------------------------------------------
    
    cd %~dp0WORK_FRA
    
    set count=0
    set num=0
    
    if not exist "###" (mkdir "###")
    
    FOR %%I IN (*.%files%) DO (
    	
    	set /a count+=1
    	set /a num+=1
    	set index=00000!num!
    	set index=!index:~-5!
    
    	set FinalLotNum=00000000!LotNum!
    	set FinalLotNum=!FinalLotNum:~-8!
    
    	move "%%~I" "###\BNPPLS_FRA_2_!horodatage!_!FinalLotNum!_!index!.%files%" >nul
    	if !count! EQU 30 (call:archive)
    
    )
    if exist "###\*.%files%" (call:archive)
    rmdir /s /q "###"
    
    
    :: -------------------------------------------------------
    :: Fin du programme
    :: -------------------------------------------------------
    
    REM if exist "D:\APPS\CFTG\scripts\cftxsend.bat" (call :sendCFT "D:\APPS\CFTG\scripts\cftxsend.bat" AUTOMATU WWDDIDEM U !zipfile!)
    
    cd %~dp0log
    
    set /a last=!LotNum!-1
    
    for /f "delims=" %%A in ('dir /b "!logfile!"') do (
    	ren "%%~A" "%%~nA-!last!%%~xA"
    	notepad "%~dp0log\%%~nA-!last!%%~xA"
    )
    exit /b 0
    
    
    :: -------------------------------------------------------
    :: Fonction de création d'archive
    :: -------------------------------------------------------
    
    :archive
    
    cls & echo. & echo lot actuel = !LotNum!
    pause
    set zipfile=BNPPLS_FRA_2_!horodatage!_!FinalLotNum!
    set zipfile=!zipfile: =!
    
    pushd "###"
    
    set count=0
    set num=0
    
    7za.exe a "!zipfile!.7z" "*.%files%"
    
    (echo. & echo. & echo ########## Fichier déplacé vers ARCHIVE
    echo.
    move "!zipfile!.7z" "%~dp0ARCHIVE" >nul && echo *** !zipfile!.7z ***
    >nul del /f /q "*.*" 2>&1
    echo. & echo.) >> !logfile!
    popd
    
    set /a LotNum+=1
    echo !LotNum! > %~dp0conf\lot.conf
    
    goto :eof
    
    
    :: -------------------------------------------------------
    :: Fonction pour envoi CFT
    :: -------------------------------------------------------
    
    :sendCFT
    
    %1 -D "%~2" -I "%~3" -F "%chemin%+%fichier%" -P "%~4_%fichier%" –O “RUSER=CANON01M,SUSER=10000000,SAPPL=0x515E7A98”
    %1 -D "%~2" -I "%~3" -F "%~5.7z" -P "%~4_%~5"
    %1 -D "AUTOMATQ" -I "%~3" -F "%~5.7z" -P "Q_%~5"
    %1 -D "%~2" -I "%~3" -F "%~5.7z" -P "U_%~5"
    
    goto :eof
    J'ai rajouté un peu de gestion d'erreur (création de l'arborescence et vérification de la présence des fichiers vitaux) pour éviter que le script fasse n'importe quoi en cas d'imprévu, et j'ai supprimé quelques variables pas forcément indispensables.

  7. #27
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 161
    Par défaut
    salut Barnabe,

    Merci encore: tout est nikel sur la gestion des logs mais la fonction CFT ne fontionne toujours pas: j'ai passé l'apres midi dessus a trifouiller ton script mais rien a faire j'ai toujours l'erreur "the system cannot find the specified label - sendCFT".

    J'ai regardé dans le forum windows et beaucoup on deja eu cette erreur et parle d'un potentiel probleme de CRLF...

    J'ai fais un test en retirant la fonction du script et en mettant directement la commande entiere

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    D:\APPS\CFTG\scripts\cftxsend.bat -D "AUTOMATU" -I "WWDDIDEM" -F D:\CFT\Tempus\Upload\BPM_UAT\WORK_FRA\!zipfile!.7z -P "U_%zipfile%"
    avec ca: l'envoi CFT se fait bien mais il ne prend en compte qu'un seul des lots alors qu'il devrait y avoir autant d'enoi CFT que de lot créés, De plus cela modifie le nommage du fichier de log que tu créés en le nommant qu avec 1 lot alors que le contenu fais bien état de 2 lots créés.

    J'aimerais bien avoir tes lumieres encore une fois meme si j'ai conscience que tu m 'as déjà enormement aidé mais je seche :-(

  8. #28
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    Si tu veux faire un envoi CFT pour tous les lots et supprimer la fonction, ça donne ça :

    Code : 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    @echo off
    chcp 1252 >nul
    Setlocal EnableExtensions EnableDelayedExpansion
    
    cd /d %~dp0 || exit /b 1
    
    set files=eml
    
    powershell -Command "get-childItem D:\CFT\Tempus\Upload\BPM_UAT\SCAN_FRA\*.%files% | rename-item -newname { $_.name -replace '!','' }"
    
    
    :: -------------------------------------------------------
    :: Création de l'arborescence
    :: -------------------------------------------------------
    
    if not exist "%~dp0ARCHIVE" (mkdir "%~dp0ARCHIVE")
    if not exist "%~dp0conf\lot.conf" (exit /b 1)
    if not exist "%~dp0log" (mkdir "%~dp0log")
    if not exist "%~dp0REJET" (mkdir "%~dp0REJET")
    if not exist "%~dp0SCAN_FRA\*.%files%" (exit /b 1)
    if not exist "%~dp0WORK_FRA" (mkdir "%~dp0WORK_FRA")
    
    
    :: -------------------------------------------------------
    :: Définition des variables
    :: -------------------------------------------------------
    	
    set today=%date:~6,4%%date:~3,2%%date:~0,2%
    
    set /p LotNum=<%~dp0conf\lot.conf
    set LotNum=!LotNum: =!
    
    set logfile=%~dp0log\ScanFra_%today%_LOT_!LotNum!.log
    
    set horodatage=%today%T%time:~0,2%%time:~3,2%
    set horodatage=!horodatage: =!
    
    
    :: -------------------------------------------------------
    :: Tri des fichiers selon l'extension à cibler
    :: -------------------------------------------------------
    
    (echo. & echo ########## Fichiers déplacés vers WORK_FRA
    echo.
    move "%~dp0SCAN_FRA\*.%files%" "%~dp0WORK_FRA"
    
    echo. & echo. & echo. & echo ########## Fichiers déplacés vers REJET
    echo.
    2>nul move /y "%~dp0SCAN_FRA\*.*" "%~dp0REJET"
    
    echo. & echo.) >> !logfile!
    
    if not exist "%~dp0WORK_FRA\*.%files%" (exit /b 1)
    
    
    :: -------------------------------------------------------
    :: Création des lots (30 fichiers maxi par lot)
    :: -------------------------------------------------------
    
    cd %~dp0WORK_FRA
    
    set count=0
    set num=0
    
    if not exist "###" (mkdir "###")
    
    FOR %%I IN (*.%files%) DO (
    	
    	set /a count+=1
    	set /a num+=1
    	set index=00000!num!
    	set index=!index:~-5!
    
    	set FinalLotNum=00000000!LotNum!
    	set FinalLotNum=!FinalLotNum:~-8!
    
    	move "%%~I" "###\BNPPLS_FRA_2_!horodatage!_!FinalLotNum!_!index!.%files%" >nul
    	if !count! EQU 30 (call:archive)
    
    )
    if exist "###\*.%files%" (call:archive)
    rmdir /s /q "###"
    
    
    :: -------------------------------------------------------
    :: Fin du programme
    :: -------------------------------------------------------
    
    cd %~dp0log
    
    set /a last=!LotNum!-1
    
    for /f "delims=" %%A in ('dir /b "!logfile!"') do (
    	ren "%%~A" "%%~nA-!last!%%~xA"
    	notepad "%~dp0log\%%~nA-!last!%%~xA"
    )
    
    exit /b 0
    
    
    :: -------------------------------------------------------
    :: Fonction de création d'archive
    :: -------------------------------------------------------
    
    :archive
    
    cls & echo. & echo lot actuel = !LotNum!
    
    set zipfile=BNPPLS_FRA_2_!horodatage!_!FinalLotNum!
    set zipfile=!zipfile: =!
    
    pushd "###"
    
    set count=0
    set num=0
    
    7za.exe a "!zipfile!.7z" "*.%files%"
    
    D:\APPS\CFTG\scripts\cftxsend.bat -D "AUTOMATU" -I "WWDDIDEM" -F D:\CFT\Tempus\Upload\BPM_UAT\WORK_FRA\!zipfile!.7z -P "U_!zipfile!"
    
    (echo. & echo. & echo ########## Fichier déplacé vers ARCHIVE
    echo.
    move "!zipfile!.7z" "%~dp0ARCHIVE" >nul && echo *** !zipfile!.7z ***
    >nul del /f /q "*.*" 2>&1
    echo. & echo.) >> !logfile!
    popd
    
    set /a LotNum+=1
    echo !LotNum! > %~dp0conf\lot.conf
    
    goto :eof
    A tester !

  9. #29
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 161
    Par défaut
    Hello Barnabe! merci pour ta réactivité encore et toujours...!

    il y a toujours le probleme sur la partie envoi CFT: le script se plante: il fait tout le travail puis s'arrete et ne va pas au bout: il créée juste le dossier ### dans WORK_FRA depose le zip crééé aec les fichiers renommés et sort. il ne crééé pas le deuxieme lot donc il revient pas dans la bouche archive.

    j'ai testé en commentant juste la ligne de commande d'envoi CFT D:\..\cftsend....

    et la tout fonctionne parfaitement: les lots sont bien créés selon la regle qu on avait établi.

    mais des que la ligne de commande est décommenté: ca crash

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ....
    set count=0
    set num=0
    
    7za.exe a "!zipfile!.7z" "*.%files%"
    
    rem D:\APPS\CFTG\scripts\cftxsend.bat -D "AUTOMATU" -I "WWDDIDEM" -F D:\CFT\Tempus\Upload\BPM_UAT\WORK_FRA\###\!zipfile!.7z -P "U_!zipfile!"
    
    ....
    => OK mais pas d'envoi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    set count=0
    set num=0
    
    7za.exe a "!zipfile!.7z" "*.%files%"
    
    D:\APPS\CFTG\scripts\cftxsend.bat -D "AUTOMATU" -I "WWDDIDEM" -F D:\CFT\Tempus\Upload\BPM_UAT\WORK_FRA\!zipfile!.7z -P "U_!zipfile!"
    =>KO et KO

    voilà l'erreur quand ce n est pas commenté:

    Code : 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    
    lot actuel = 1091
    BNPPLS_FRA_2_20180912T1133_00001091
    Press any key to continue . . .
    
    7-Zip [64] 16.04 : Copyright (c) 1999-2016 Igor Pavlov : 2016-10-04
    
    Scanning the drive:
    30 files, 0 bytes
    
    Creating archive: BNPPLS_FRA_2_20180912T1133_00001091.7z
    
    Items to compress: 30
    
    
    Files read from disk: 0
    Archive size: 232 bytes (1 KiB)
    Everything is Ok
    fin zippage
    Press any key to continue . . .
    "debut envoi CFT"
    The system cannot find the batch label specified - archive
    The system cannot find the file specified.
    The system cannot find the file specified.
    The system cannot find the file specified.
    The system cannot find the file specified.
    The system cannot find the file specified.
    The system cannot find the file specified.
    The system cannot find the file specified.
    The system cannot find the file specified.
    The system cannot find the file specified.
    The system cannot find the file specified.
    The system cannot find the file specified.
    The system cannot find the file specified.
    The system cannot find the file specified.
    The system cannot find the file specified.
    The system cannot find the file specified.
    
    C:\Users\adma31991>
    je sais plus comment faire :-(

  10. #30
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 161
    Par défaut
    hello Barnabe,

    bon j'ai creusé encore l'apres midi et je ne suis pas parvenu à trouvé pourquoi le script ne fonctionne pas sur la partie envoi CFT sur ta derniere version.

    Du coup j'ai modifie le script pour le faire fonctionner: j'ai notamment sorti la parti d'envoi CFT de la boucle de la fonction :archive et j'ai mis les instructions dans le main du programme.

    Ainsi à la fin de tout le traitement une fois que les zip sont dans le dossier ARCHIVE alors je lance la commade CFT pour les envoyer.

    Seul soucis il le semble pas prendre en compte ma boucle for et du coup n'envoie qu'1 zip sur 2 et sort.

    tu peux jeter un oeil et me dire ce qui ne va pas ? tu trouveras le bout de code en gras

    Code : 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    
    echo off
    chcp 1252 >nul
    Setlocal EnableExtensions EnableDelayedExpansion
    
    cd /d %~dp0 || exit /b 1
    
    set files=eml
    
    powershell -Command "get-childItem D:\CFT\Tempus\Upload\BPM_UAT\SCAN_FRA\*.%files% | rename-item -newname { $_.name -replace '!','' }"
    
    
    :: -------------------------------------------------------
    :: Création de l'arborescence
    :: -------------------------------------------------------
    
    set ARCHIVE=D:\CFT\Tempus\Upload\BPM_UAT\ARCHIVE
    set REJET=D:\CFT\Tempus\Upload\BPM_UAT\REJET
    set SCAN_FRA=D:\CFT\Tempus\Upload\BPM_UAT\SCAN_FRA
    set WORK_FRA=D:\CFT\Tempus\Upload\BPM_UAT\WORK_FRA
    
    if not exist "%ARCHIVE%" (mkdir "%ARCHIVE%")
    if not exist "%~dp0conf\lot.conf" (exit /b 1)
    if not exist "%~dp0log" (mkdir "%~dp0log")
    if not exist "%REJET%" (mkdir "%REJET%")
    if not exist "%SCAN_FRA%\*.%files%" (exit /b 1)
    if not exist "%WORK_FRA%" (mkdir "%WORK_FRA%")
    
    
    :: -------------------------------------------------------
    :: Définition des variables
    :: -------------------------------------------------------
    	
    set today=%date:~6,4%%date:~3,2%%date:~0,2%
    
    set /p LotNum=<%~dp0conf\lot.conf
    set LotNum=!LotNum: =!
    
    set logfile=%~dp0log\ScanFra_%today%_LOT_!LotNum!.log
    
    set horodatage=%today%T%time:~0,2%%time:~3,2%
    set horodatage=!horodatage: =!
    
    
    :: -------------------------------------------------------
    :: Tri des fichiers selon l'extension à cibler
    :: -------------------------------------------------------
    
    (echo. & echo ########## Fichiers déplacés vers WORK_FRA
    echo.
    move "%SCAN_FRA%\*.%files%" "%WORK_FRA%"
    
    echo. & echo. & echo. & echo ########## Fichiers déplacés vers REJET
    echo.
    2>nul move /y "%SCAN_FRA%\*.*" "%REJET%"
    
    echo. & echo.) >> !logfile!
    
    if not exist "%WORK_FRA%\*.%files%" (exit /b 1)
    
    
    :: -------------------------------------------------------
    :: Création des lots (30 fichiers maxi par lot)
    :: -------------------------------------------------------
    
    cd %WORK_FRA%
    
    set count=0
    set num=0
    
    if not exist "###" (mkdir "###")
    
    FOR %%I IN (*.%files%) DO (
    	
    	set /a count+=1
    	set /a num+=1
    	set index=00000!num!
    	set index=!index:~-5!
    
    	set FinalLotNum=00000000!LotNum!
    	set FinalLotNum=!FinalLotNum:~-8!
    
    	move "%%~I" "###\BNPPLS_FRA_2_!horodatage!_!FinalLotNum!_!index!.%files%" >nul
    	if !count! EQU 30 (call:archive)
    
    )
    if exist "###\*.%files%" (call:archive)
    for %%f in (%ARCHIVE%\*.7z) do (
    echo D:\APPS\CFTG\scripts\cftxsend.bat -D "AUTOMATU" -I "WWDDIDEM" -F "%%f" -P "U_%%f"
    D:\APPS\CFTG\scripts\cftxsend.bat -D "AUTOMATU" -I "WWDDIDEM" -F "%%f" -P "U_%%f"
    )
    
    rem del %ARCHIVE%\*.7z
    rmdir /s /q "###"
    
    
    :: -------------------------------------------------------
    :: Fin du programme
    :: -------------------------------------------------------
    
    cd %~dp0log
    
    set /a last=!LotNum!-1
    
    for /f "delims=" %%A in ('dir /b "!logfile!"') do (
    	ren "%%~A" "%%~nA-!last!%%~xA"
    	notepad "%~dp0log\%%~nA-!last!%%~xA"
    )
    
    exit /b 0
    
    
    :: -------------------------------------------------------
    :: Fonction de création d'archive
    :: -------------------------------------------------------
    
    :archive
    
    echo je suis dans archive
    echo %ARCHIVE%
    pause
    
    cls & echo. & echo lot actuel = !LotNum!
    
    set zipfile=BNPPLS_FRA_2_!horodatage!_!FinalLotNum!
    set zipfile=!zipfile: =!
    
    echo %zipfile%
    
    pause
    
    pushd "###"
    
    
    set count=0
    set num=0
    
    "C:\Program Files\7-Zip\7z.exe" a "!zipfile!.7z" "*.%files%"
    
    echo fin zippage
    
    rem D:\APPS\CFTG\scripts\cftxsend.bat -D "AUTOMATU" -I "WWDDIDEM" -F "!zipfile!.7z" -P "U_!zipfile!"
    
    
    (echo. & echo. & echo ########## Fichier déplacé vers ARCHIVE
    echo.
    move "!zipfile!.7z" "%ARCHIVE%\" >nul && echo *** !zipfile!.7z ***
    >nul del /f /q "*.*" 2>&1
    echo. & echo.) >> !logfile!
    popd
    
    set /a LotNum+=1
    echo !LotNum! > %~dp0conf\lot.conf
    
    goto :eof

  11. #31
    Membre actif
    Homme Profil pro
    007
    Inscrit en
    Octobre 2014
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : 007

    Informations forums :
    Inscription : Octobre 2014
    Messages : 119
    Par défaut
    Citation Envoyé par jam92400 Voir le message
    il y a toujours le probleme sur la partie envoi CFT: le script se plante: il fait tout le travail puis s'arrete et ne va pas au bout: il créée juste le dossier ### dans WORK_FRA depose le zip crééé aec les fichiers renommés et sort. il ne crééé pas le deuxieme lot donc il revient pas dans la bouche archive.
    salut,

    il faut appeler ton script avec un call, genre: call x:\cftx.bat ....

    edit:

    dans le script, en ligne 148, y'a un "del /f /q" très dangereux dans le sens
    que ça supprime tout alors que la réussite des opérations précédentes n'a
    pas été vérifiée.

  12. #32
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    Salut jam, j'ai l'impression que le bug affecte uniquement la dernière fonction du script (d'abord c'était "envoi CFT" et maintenant c'est "archive")

    Qu'est-ce que tu utilises comme éditeur de texte ? Moi j'utilise le bloc-notes de Windows 7.

    Essaie de rajouter une ligne vide tout à la fin du script.

    Si ça ne fonctionne toujours pas, on pourrait créer une fonction bidon que l'on placerait à la fin du script.

    Sinon je peux te transmettre mon fichier texte, tu n'auras qu'à changer l'extension, possible que ce soit la solution.

  13. #33
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    Salut CTJayce,

    Merci pour ton aide, mon intuition m'a fait penser à la même chose, mais mes connaissances ne me permettent pas de comprendre pourquoi.

    Des fois un programme se lance simplement en invoquant son nom et chemin complet, des fois il faut passer par START, des fois il faut passer par CALL, bien que j'ai déjà un peu creusé le sujet tout cela me dépasse encore.

  14. #34
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 161
    Par défaut
    Hello Barnabe !

    j'utilise le notepad version windows server 6.1 (Build 7601 : Service Pack 1). ( en fait le notepad present sur le serveur ou le script s'execute).

    Je veux bien tenter avec ton fichier si tu peux le mettre en PJ, faudra juste que je modifie tous les paths pour archive, scan_fra...comme ci-dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    set ARCHIVE=D:\CFT\Tempus\Upload\BPM_UAT\ARCHIVE
    set REJET=D:\CFT\Tempus\Upload\BPM_UAT\REJET
    set SCAN_FRA=D:\CFT\Tempus\Upload\BPM_UAT\SCAN_FRA
    set WORK_FRA=D:\CFT\Tempus\Upload\BPM_UAT\WORK_FRA
    car le .bat n'est pas au meme endroit que ces dossiers mais bien au meme niveau que le dossier de log et conf.

    Sinon concernant la boucle que je tente de faire dans mon post précédent: tu as une idée pourquoi elle boucle pas et qu elle envoit que le premier ?
    je demande au cas on arrive pas a faire passer par la fonction :sendCFT

    Que penses-tu du commentaires de CTJayce ( que je remercie au passage) ?

    Jam

  15. #35
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 161
    Par défaut
    Salut CTJayce!

    en attendant j ai tenter ta solution avec un call pour la fonction sendCFT en mettant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    call D:\APPS\CFTG\scripts\cftxsend.bat -D "AUTOMATU" -I "WWDDIDEM" -F "!zipfile!.7z" -P "U_!zipfile!"
    au lieu de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    D:\APPS\CFTG\scripts\cftxsend.bat -D "AUTOMATU" -I "WWDDIDEM" -F "!zipfile!.7z" -P "U_!zipfile!"
    meme chose => KO :-(

  16. #36
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    Il n'y a pas de raison que ta boucle FOR ne fonctionne pas, à part l'histoire du CALL.

    Voilà une nouvelle version qui fonctionne chez moi :

    Code : 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    @echo off
    chcp 1252 >nul
    Setlocal EnableExtensions EnableDelayedExpansion
    
    cd /d %~dp0 || exit /b 1
    
    set files=eml
    
    powershell -Command "get-childItem D:\CFT\Tempus\Upload\BPM_UAT\SCAN_FRA\*.%files% | rename-item -newname { $_.name -replace '!','' }"
    
    
    :: -------------------------------------------------------
    :: Définition des variables
    :: -------------------------------------------------------
    	
    set today=%date:~6,4%%date:~3,2%%date:~0,2%
    
    set /p LotNum=<%~dp0conf\lot.conf
    set LotNum=!LotNum: =!
    
    set logfile=%~dp0log\ScanFra_%today%_LOT_!LotNum!.log
    
    set horodatage=%today%T%time:~0,2%%time:~3,2%
    set horodatage=!horodatage: =!
    
    set ARCHIVE=D:\CFT\Tempus\Upload\BPM_UAT\ARCHIVE
    set REJET=D:\CFT\Tempus\Upload\BPM_UAT\REJET
    set SCAN_FRA=D:\CFT\Tempus\Upload\BPM_UAT\SCAN_FRA
    set WORK_FRA=D:\CFT\Tempus\Upload\BPM_UAT\WORK_FRA
    
    
    :: -------------------------------------------------------
    :: Création de l'arborescence
    :: -------------------------------------------------------
    
    if not exist "%ARCHIVE%" (mkdir "%ARCHIVE%")
    if not exist "%~dp0conf\lot.conf" (exit /b 1)
    if not exist "%~dp0log" (mkdir "%~dp0log")
    if not exist "%REJET%" (mkdir "%REJET%")
    if not exist "%SCAN_FRA%\*.%files%" (exit /b 1)
    if not exist "%WORK_FRA%" (mkdir "%WORK_FRA%")
    
    
    :: -------------------------------------------------------
    :: Tri des fichiers selon l'extension à cibler
    :: -------------------------------------------------------
    
    (echo. & echo ########## Fichiers déplacés vers WORK_FRA
    echo.
    move "%SCAN_FRA%\*.%files%" "%WORK_FRA%"
    
    echo. & echo. & echo. & echo ########## Fichiers déplacés vers REJET
    echo.
    2>nul move /y "%SCAN_FRA%\*.*" "%REJET%"
    
    echo. & echo.) >> !logfile!
    
    if not exist "%WORK_FRA%\*.%files%" (exit /b 1)
    
    
    :: -------------------------------------------------------
    :: Création des lots (30 fichiers maxi par lot)
    :: -------------------------------------------------------
    
    cd /d %WORK_FRA%
    
    set count=0
    set num=0
    
    if not exist "###" (mkdir "###")
    
    FOR %%I IN (*.%files%) DO (
    	
    	set /a count+=1
    	set /a num+=1
    	set index=00000!num!
    	set index=!index:~-5!
    
    	set FinalLotNum=00000000!LotNum!
    	set FinalLotNum=!FinalLotNum:~-8!
    
    	move "%%~I" "###\BNPPLS_FRA_2_!horodatage!_!FinalLotNum!_!index!.%files%" >nul
    	if !count! EQU 30 (call:archive)
    
    )
    if exist "###\*.%files%" (call:archive)
    rmdir /s /q "###"
    
    
    :: -------------------------------------------------------
    :: Envoi CFT
    :: -------------------------------------------------------
    
    for %%G in (%ARCHIVE%\*.7z) do (
    	echo "D:\APPS\CFTG\scripts\cftxsend.bat -D AUTOMATU -I WWDDIDEM -F %%~G -P U_%%~nxG"
    	call "D:\APPS\CFTG\scripts\cftxsend.bat -D AUTOMATU -I WWDDIDEM -F %%~G -P U_%%~nxG"
    )
    
    del /f /q "%ARCHIVE%\*.7z"
    
    
    :: -------------------------------------------------------
    :: Fin du programme
    :: -------------------------------------------------------
    
    cd /d %~dp0log
    
    set /a last=!LotNum!-1
    
    for /f "delims=" %%A in ('dir /b "!logfile!"') do (
    	ren "%%~A" "%%~nA-!last!%%~xA"
    	notepad "%~dp0log\%%~nA-!last!%%~xA"
    )
    
    exit /b 0
    
    
    :: -------------------------------------------------------
    :: Fonction de création d'archive
    :: -------------------------------------------------------
    
    :archive
    
    cls & echo. & echo lot actuel = !LotNum!
    
    set zipfile=BNPPLS_FRA_2_!horodatage!_!FinalLotNum!
    set zipfile=!zipfile: =!
    
    pushd "###"
    
    set count=0
    set num=0
    
    7za.exe a "!zipfile!.7z" "*.%files%"
    
    (echo. & echo. & echo ########## Fichier déplacé vers ARCHIVE
    echo.
    echo *** !zipfile!.7z ***
    move "!zipfile!.7z" "%ARCHIVE%" >nul && del /f /q "*.%files%" >nul 2>&1
    echo. & echo.) >> !logfile!
    popd
    
    set /a LotNum+=1
    echo !LotNum! > %~dp0conf\lot.conf
    
    goto :eof
    
    
    :: -------------------------------------------------------
    :: Fonction useless
    :: -------------------------------------------------------
    
    :useless
    
    timeout /t 10
    
    goto :eof
    
    rem
    Voilà le lien pour télécharger le fichier texte : https://we.tl/t-AqKK1QiPd8

  17. #37
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 161
    Par défaut
    hello Barnabe !

    Merci encore !!

    je viens de tester ta nouvelle version : plus d'erreur de fonction.

    En revanche j'ai toujours le meme probleme qu'hier à savoir que sur la fonction CFT: au lieu de boucler sur tous les fichiers .7z qu'il trouve dans ARCHIVE, il prend en compte que le 1er lot et sort et je ne comprend pas pourquoi!

    Pourtant quand je fais juste un echo de la ligne de commande j'ai bien 2 lignes avec les lots distincts alors pourquoi il sort apres envoi du premier lot ( qui marche bien)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for %%G in (%ARCHIVE%\*.7z) do (
    	echo "D:\APPS\CFTG\scripts\cftxsend.bat -D AUTOMATU -I WWDDIDEM -F %%~G -P U_%%~nxG"
    	call "D:\APPS\CFTG\scripts\cftxsend.bat" -D AUTOMATU -I WWDDIDEM -F "%%~G" -P "U_%%~nxG"
    )
    le echo affiche bien: voir le retour de l'echo ci-dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    call "D:\APPS\CFTG\scripts\cftxsend.bat" -D AUTOMATU -I WWDDIDEM -F c:\test\Fichier1 -P U_Fichier1
    call "D:\APPS\CFTG\scripts\cftxsend.bat" -D AUTOMATU -I WWDDIDEM -F c:\test\Fichier2 -P U_Fichier2
    Mais le call d'apres ne traite que le fichier1 et sort :-(

    du coup j'ai fais test en crééant un .bat isolé et mettant unoquement les 2 lignes commande CFT avec les fichiers en dur ! et meme resultat !!! Le 1 er est envoyé puis il sort sans traiter la deuxieme instruction ??? comment c est possible ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    @echo off
    :: -------------------------------------------------------
    :: Envoi CFT
    :: -------------------------------------------------------
    "D:\APPS\CFTG\scripts\cftxsend.bat" -D AUTOMATU -I WWDDIDEM -F "D:\CFT\Tempus\Upload\BPM_UAT\ARCHIVE\BNPPLS_FRA_3_20180913T1038_00001185.7z" -P "U_BNPPLS_FRA_3_20180913T1038_00001185.7z"
    "D:\APPS\CFTG\scripts\cftxsend.bat" -D AUTOMATU -I WWDDIDEM -F "D:\CFT\Tempus\Upload\BPM_UAT\ARCHIVE\BNPPLS_FRA_3_20180913T1038_00001186.7z" -P "U_BNPPLS_FRA_3_20180913T1038_00001186.7z"
    => Le fichier xx185 est bien traité et le XX186 ignoré: il sort des la premiere instruction finie: Mais pourquoi ???

    j'attache le .bat cftxSend.bat si ca peut aider a comprendre...
    Fichiers attachés Fichiers attachés

  18. #38
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 161
    Par défaut
    J'ai enfin trouvé pourquoi ca ne fonctionnait pas

    j'ai sumplement remplacé le "call" par un "start" et j'ai plus de probleme: il traite bien les 2 fichiers mais je serais incapable de dire pourquoi ca marche avc start et pas call

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    :: -------------------------------------------------------
    :: Envoi CFT
    :: -------------------------------------------------------
    
    for %%G in (%ARCHIVE%\*.7z) do (
    	echo %%G
    	echo start /wait D:\APPS\CFTG\scripts\cftxsend.bat -D AUTOMATU -I WWDDIDEM -F "%%~G" -P "U_%%~nxG"
    
    	start /wait D:\APPS\CFTG\scripts\cftxsend.bat -D AUTOMATU -I WWDDIDEM -F "%%~G" -P "U_%%~nxG"
    
    )
    Je te remercierais jamais assez Barnabe: tu m'as vraiment beauoup beaucoup aidé sincererement !!
    si tu as besoin de quoique ce soit si je peux aider a mon tour ce sera avec plaisir !!

  19. #39
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    Super ! On est y arrivé finalement

    Content d'avoir pu t'aider, merci pour ta proposition, je garde ça dans un coin de ma tête.

    Bonne nuit et à bientôt peut-être.

  20. #40
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 161
    Par défaut Bash dos - gérer 2 extensions
    Hello Barnabé

    Pourrais-tu m'aider à faire une modification mineure sur le script que tu as largement contribué à construire.

    Dans ce scrit on ne gere que les extensions EML (%File%=EML) mais aujourdh'hui je dois gérer les extensions Outlook "MSG" et je ne vois comment intégrer ce nouveau paramètre vu que je ne plus définir %file% en dur comme avant tu vois ?

    Code : 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    @echo off
    chcp 1252 >nul
    
    powershell -Command "get-childItem D:\CFT\Tempus\Upload\BPM_UAT\SCAN_FRA\*.eml | rename-item -newname { $_.name -replace '!','' }"
    
    
    Setlocal EnableExtensions EnableDelayedExpansion
    
    cd /d %~dp0 || exit /b 1
    
    set files=eml
    
    
    
    :: -------------------------------------------------------
    :: Définition des variables
    :: -------------------------------------------------------
    	
    set today=%date:~6,4%%date:~3,2%%date:~0,2%
    
    set /p LotNum=<%~dp0conf\lot.conf
    set LotNum=!LotNum: =!
    
    set logfile=%~dp0log\ScanFra_%today%_LOT_!LotNum!.log
    
    set horodatage=%today%T%time:~0,2%%time:~3,2%
    set horodatage=!horodatage: =!
    
    set ARCHIVE=D:\CFT\Tempus\Upload\BPM_UAT\ARCHIVE
    set REJET=D:\CFT\Tempus\Upload\BPM_UAT\REJET
    set SCAN_FRA=D:\CFT\Tempus\Upload\BPM_UAT\SCAN_FRA
    set WORK_FRA=D:\CFT\Tempus\Upload\BPM_UAT\WORK_FRA
    set TMP=D:\CFT\Tempus\Upload\BPM_UAT\ARCHIVE\TMP
    
    
    :: -------------------------------------------------------
    :: Création de l'arborescence
    :: -------------------------------------------------------
    
    if not exist %SCAN_FRA%\*.%files% (exit /b 0)
    
    if not exist "%ARCHIVE%" (mkdir "%ARCHIVE%")
    if not exist "%TMP%" (mkdir "%TMP%")
    if not exist "%~dp0conf\lot.conf" (exit /b 1)
    if not exist "%~dp0log" (mkdir "%~dp0log")
    if not exist "%REJET%" (mkdir "%REJET%")
    if not exist "%SCAN_FRA%\*.%files%" (exit /b 1)
    if not exist "%WORK_FRA%" (mkdir "%WORK_FRA%")
    
    
    
    :: -------------------------------------------------------
    :: Tri des fichiers selon l'extension à cibler
    :: -------------------------------------------------------
    
    
    (echo. & echo ########## Fichiers déplacés vers WORK_FRA
    echo.
    move "%SCAN_FRA%\*.%files%" "%WORK_FRA%"
    
    echo. & echo. & echo. & echo ########## Fichiers déplacés vers REJET
    echo.
    2>nul move /y "%SCAN_FRA%\*.*" "%REJET%"
    
    echo. & echo.) >> !logfile!
    
    if not exist "%WORK_FRA%\*.%files%" (exit /b 1)
    
    
    :: -------------------------------------------------------
    :: Création des lots (30 fichiers maxi par lot)
    :: -------------------------------------------------------
    
    cd /d %WORK_FRA%
    
    set count=0
    set num=0
    
    if not exist "###" (mkdir "###")
    
    FOR %%I IN (*.%files%) DO (
    	
    	set /a count+=1
    	set /a num+=1
    	set index=00000!num!
    	set index=!index:~-5!
    
    	set FinalLotNum=00000000!LotNum!
    	set FinalLotNum=!FinalLotNum:~-8!
    
    	move "%%~I" "###\BNPPLS_FRA_3_!horodatage!_!FinalLotNum!_!index!.%files%" >nul
    	if !count! EQU 30 (call:archive)
    
    )
    if exist "###\*.%files%" (call:archive)
    rmdir /s /q "###"
    
    
    :: -------------------------------------------------------
    :: Envoi CFT
    :: -------------------------------------------------------
    
    for %%G in (%TMP%\*.7z) do (
    	echo %%G
    	echo start /B /wait D:\APPS\CFTG\scripts\cftxsend.bat -D AUTOMATU -I WWDDIDEM -F "%%~G" -P "U_%%~nxG"
    
    	start /B /wait D:\APPS\CFTG\scripts\cftxsend.bat -D AUTOMATU -I WWDDIDEM -F "%%~G" -P "U_%%~nxG"
    
    )
    
    rem rmdir %ARCHIVE%\tmp
    
    
    :: -------------------------------------------------------
    :: Fin du programme
    :: -------------------------------------------------------
    
    cd /d %~dp0log
    
    set /a last=!LotNum!-1
    
    for /f "delims=" %%A in ('dir /b "!logfile!"') do (
    	ren "%%~A" "%%~nA-!last!%%~xA"
    	rem notepad "%~dp0log\%%~nA-!last!%%~xA"
    )
    
    exit /b 0
    
    
    :: -------------------------------------------------------
    :: Fonction de création d'archive
    :: -------------------------------------------------------
    
    :archive
    
    cls & echo. & echo lot actuel = !LotNum!
    
    set zipfile=BNPPLS_FRA_3_!horodatage!_!FinalLotNum!
    set zipfile=!zipfile: =!
    
    pushd "###"
    
    set count=0
    set num=0
    
    "C:\Program Files\7-Zip\7z.exe" a "!zipfile!.7z" "*.%files%"
    rem mkdir %ARCHIVE%\tmp
    xcopy "!zipfile!.7z" "%TMP%"
    (echo. & echo. & echo ########## Fichier déplacé vers ARCHIVE
    echo.
    echo *** !zipfile!.7z ***
    move "!zipfile!.7z" "%ARCHIVE%" >nul && del /f /q "*.%files%" >nul 2>&1
    echo. & echo.) >> !logfile!
    popd
    
    set /a LotNum+=1
    echo !LotNum! > %~dp0conf\lot.conf
    
    goto :eof
    
    
    :: -------------------------------------------------------
    :: Fonction useless
    :: -------------------------------------------------------
    
    :useless
    
    timeout /t 10
    
    goto :eof
    
    rem

Discussions similaires

  1. Shell script pour compter le nombre de fichiers par extension
    Par andress33 dans le forum Shell et commandes GNU
    Réponses: 16
    Dernier message: 30/03/2015, 01h26
  2. [Vxi3] comment Compresser la publication dans un fichier ZIP.
    Par zhi_yanyan2004 dans le forum Deski
    Réponses: 3
    Dernier message: 04/12/2012, 09h08
  3. Réponses: 0
    Dernier message: 12/08/2009, 22h09
  4. Réponses: 2
    Dernier message: 15/06/2009, 18h41
  5. Réponses: 7
    Dernier message: 10/10/2007, 19h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo