Changer de nom et de place

philton5000 Messages postés 119 Statut Membre -  
philton5000 Messages postés 119 Statut Membre -
Bonjour,
Je voudrais faire un bat qui change le nom du fichier selon la date d'exécution du bat et aussi de le déplacer dans un autre fichier. Merci de bien vouloir m'aider.

2 réponses

  1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour,

    Tu poses des questions... mais je n'ai pas l'impression que tu cherches vraiment avant.......

    Enfin bon..
    un truc du genre :
    @echo off
    for /f "delims=" %%a in ('wmic OS Get localdatetime  ^| find "."') do set dt=%%a
    set YYYY=%dt:~0,4%
    set MM=%dt:~4,2%
    set DD=%dt:~6,2%
    set HH=%dt:~8,2%
    set Min=%dt:~10,2%
    set Sec=%dt:~12,2%
    
    set stamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%
    
    copy "c:\repertoire\ton_fichier.son_extension" "c:\autreRepertoire\ton_fichier - %stamp%.son_extension"
    

    0
    1. philton5000
       
      j'ai essayer chez moi
      ren "c: ..../image.bmp %date% %time%.bmp

      mais ça pas fonctionner
      0
      1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930 > philton5000
         
        C'est parce que %date% et %time% contiennent des caractères spéciaux, et les noms de fichiers ne peuvent pas en contenir.

        Si tu veux les utiliser, il faut d'abord les découper, comme Jordane te l'a montré.
        0
    2. philton5000 Messages postés 119 Statut Membre
       
      ha ok merci
      0
  2. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
     
    Bonjour,

    Je suis d'accord avec Jordane, tu ne te casses pas beaucoup la tête.

    Je suppose que ta demande a un rapport avec les photos prises par webcam.
    Voilà donc un script qui prend une rafale de (5) photos puis les déplace/renomme vers un dossier de destination :

    @echo off
    Mode con cols=50 lines=25
    Title Webcam
    setlocal enableextensions enabledelayedexpansion
    color 0A

    :: ---------------------------
    :: debut du programme
    :: ---------------------------

    set jour=!date:~6,4!!date:~3,2!!date:~0,2!
    set heure=!time:~0,2!h!time:~3,2!m!time:~6,2!s

    set source=le chemin vers le dossier qui contient CommandCam.exe
    set destination=%USERPROFILE%\Desktop\backup

    if not exist "%source%\CommandCam.exe" (exit /b 1)
    cd /d %source% || exit /b 1
    del /f /q "*.bmp" >nul 2>&1

    for /L %%A in (1,1,5) do (
    set num=000%%A
    set num=!num:~-4!
    echo. & echo photo %%A : en cours de prise ...
    CommandCam /filename face!num!.bmp /delay 3000 /quiet
    cls
    )

    call :deplacement "%destination%" "!jour!_!heure!"

    exit /b 0

    :: ---------------------------
    :: fin du programme
    :: ---------------------------

    :: ---------------------------
    :: debut de la fonction
    :: ---------------------------

    :deplacement

    set index=0
    if not exist "%~1\%~2" (mkdir "%~1\%~2")

    for /f "delims=" %%A in ('2^>nul dir /b /a-d ^| find ".bmp"') do (

    set /a index+=1
    set ref=000!index!
    set ref=!ref:~-4!

    echo. & echo ==^>^> %~2#!ref!%%~xA
    >nul move "%%~fA" "%~1\%~2\%~2#!ref!%%~xA"
    )

    goto :eof

    :: ---------------------------
    :: fin de la fonction
    :: ---------------------------


    Tu as juste besoin de modifier les parties soulignées.

    0
    1. philton5000
       
      nice merci
      et oui ça a rapport avec la prise de photo
      0
    2. philton5000
       
      merci merci merci
      Je ne comprend rien dans les % # / " !
      0
    3. philton5000
       
      et aussi pourquoi je n'ai pas reçu les réponce par mail (donc j'en ais écris un autre pareil)
      0
    4. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930 > philton5000
       
      Si tu comprends le reste c'est déjà bien.

      Je vais essayer d'expliquer :

      %1 et %2 correspondent aux paramètres que l'on envoie à la fonction, dans ce cas précis :

      %1 est égal à la variable "%destination%"
      %2 est égal à la variable "!jour!_!heure!"

      L'utilité d'une fonction c'est d'éviter plusieurs lignes de code qui se répètent, un peu comme une boucle FOR. A chaque fois qu'on a besoin de ces lignes de code on appelle (CALL) la fonction.
      0
    5. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930 > philton5000
       
      Pour recevoir les réponses par mail, il faut cocher la case qui va bien.
      0