Script .bat création si n'existe pas + copie données

sam -  
 sam44 -
Bonjour,

J'aimerai faire un fichier .bat qui regarderait la date et si elle existe en forme de dossier dans un répertoire sur un lecteur réseau. Si oui ne rien faire sinon, création du dossier, puis copie des données se trouvant le répertoire ver les nouveau répertoire contenantla date.

Voici mon .bat :
@echo off

echo %date% (c'est à chaque fois un lundi)

set date=%DATE:/=% (date sous forme 12112012 jjmmaaaa)

set rep1=\\10.9.0.x\donnees\extraction_windows\date
set rep2=\\10.9.0.x\donnees\extraction_unix\date
set rep3=\\10.9.0.x\donnees\extraction_wmware\date

if %rep1 exist go to FIN
else
creation du répertoire \\10.9.0.x\donnees\extraction_windows\date
pause 10 secondes
deplacement des donnees de \\10.9.0.x\donnees\extraction_windows\courant vers \\10.9.0.x\donnees\extraction_windows\date
fi

if %rep2 exist go to FIN
else
creation du répertoire \\10.9.0.x\donnees\extraction_unix\date
pause 10 secondes
deplacement des donnes de \\10.9.0.x\donnees\extraction_unix\courant vers \\10.9.0.x\donnees\extraction_unix\date
fi

if %rep3 exist go to FIN
else
creation du répertoire \\10.9.0.x\donnees\extraction_wmware\date
pause 10 secondes
deplacement des donnes de \\10.9.0.x\donnees\extraction_wmware\courant vers \\10.9.0.x\donnees\extraction_wmware\date
fi

:FIN

7 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    un début de réponse
    C:> set JMA=%date:~0,2%%date:~3,2%%date:~6,4% 
    C:> echo %JMA% 
    15112012 
    
    
    0
  2. sam
     
    Oui merci pour la date ça fonctionne
    0
  3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    creation du répertoire mkdir ...
    pause 10 secondes ping -n 10 127.0.0.1 > NUL
    deplacement des donnes move ...
    0
  4. sam
     
    vérifie qua dans le répertoire il y a des fichiers .csv :
    forfiles /M *.csv /D -0 /C "cmd /c echo @fdate"

    Il fadrait que je récupère une des dates retournées et que je la transforme de "jj/mm/aaaa" en "jjmmaaaa"

    puis verifier si le répertoire avec jjmmaaaa existe si oui rien faire
    si non création du répertoire
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    C:> set d=jj/mm/aaaa 
    C:> set d=%d:/=% 
    C:> echo %d% 
    jjmmaaaa 
    C:>
    0
  7. sam44
     
    @echo off
    REM parametres
    set letter=M:
    set repert=\****
    repert=\****

    REM positionnement dans le bon repertoire
    %letter%
    cd %repert%
    if errorlevel 1 goto :fail

    call :function 1 11
    call :function 2 22
    call :function 3 33
    goto :fin

    REM ------------ debut de fonction
    :function
    set param=%1%
    set file=%2%

    REM file date
    set m=%param%\%file%.doc

    if not exist %m% goto :skip

    REM return date file
    for %%i in (%m%) do set dd=%%~ti%

    REM define name of directory
    set n=%dd:~6,4%%dd:~3,2%%dd:~0,2%

    REM rename and crate directory
    if exist %param%\%n% (
    echo exist(%param%)
    ) else (
    echo Continue (%param%)
    move %param% %param%\%n%
    mkdir %param%
    )

    exit /B 0
    :skip
    echo WARN empty (%param%)
    exit /B 2
    REM ------------ end of function

    echo ERR on ne doit pas passer la

    REM ------------ end of program
    :fail
    echo ERR %letter%%repert% not exist

    :fin
    echo It's finish
    0