Ecrire batch ....sous xp

erico258 Messages postés 4 Statut Membre -  
djest_02 Messages postés 4 Date d'inscription   Statut Membre -
bonjour a tous
qui connait la syntaxe sous xp pour ecrire un batch afin de creer
un dossier de facon automatique avec la date du jour
merci a tous

46 réponses

  • 1
  • 2
  • 3
Résumé de la discussion

Un batch sous XP permettant de créer un dossier portant la date du jour nécessite une gestion fiable de la date et des espaces dans le nom.
Plusieurs méthodes donnent le nom du dossier en utilisant FOR /F avec DATE/T ou des substitutions directes des variables %date% et %time% pour composer le format JJ-MM-YYYY, suivi d'un md/mkdir.
Des exemples pratiques utilisent FOR /F 'DATE/T' pour extraire jour, mois et année, puis créent le répertoire ainsi nommé, par exemple mkdir C:\Sauvegardes\%date% et %time%.
En pratique, les résultats peuvent varier selon le format régional et les espaces, et certaines solutions exigent d'encadrer les variables par des guillemets dans les scripts pour éviter les erreurs.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. coudezef
     
    c bien bo de faire la morale mais ta fonction ne marchent pas...

    voila ce que j ai trouve depuis :

    set Mydate=%date:~10,4%-%date:~7,2%-%date:~4,2%-%time:~0,2%.%time:~3,2%

    md Report_%Mydate%
    cd Report_%Mydate%

    et ensuite je sauvegarde dans le fichier courant...

    bon vent

    jacques
    2
  2. hourrrah Messages postés 6976 Statut Membre 515
     
    salut,
    Si tu crées un dossier un jour, il a, par défaut, la date de ce jour, non ?
    Donc :
    Cd <le chemin>
    md <le nom du dossier>

    Cordialement  et @+ 
    Chi va piano va sano..chi va sano va più lontano e più alto
    0
  3. tigris77g@hotmail.com
     
    Bonjour tout le monde...
    voici votre solution tant attendue.. (parceque les backups c'est la santé et des activités en plus)

    for /F "tokens=1,2,3,4,5,6,7 delims=/:, " %i in ("%date% %time%") do rem %l%k%j %m%n%o

    Le format de la date est : ME. 27/07/2004

    Si vous ne souhaitez qu'obtenir la date au format 20040727 et que votre format date est : (%date%) : 27/07/2004

    for /F "tokens=1,2,3 delims=/" %i in ("%date%") do rem %k%j%i

    (cette dernière version n'a pas été testé mais devrait être fonctionelle).

    Au lieu de mettre REM après le DO, il faut mettre MKDIR.
    PS : il serait peut être préférable d'éviter de longues discutions "phylosophiques" et répondre de manière plus concise afin de rendre le forum plus professionnel et de recevoir une qualité de réponses meilleures. Ca n'engage que moi, évidement.
    0
    1. sidarus Messages postés 387 Statut Contributeur 112
       
      Le philo... tu disais ?

      Relis le poste <9> = marche a suivre + explications => fonctionnel
      PS: Ou pourquoi faire simple quand on peut faire compliqué ?
      ça n'engage que toi bien évidemment.

      ~°sidarus°~
      0
  4. hourrrah Messages postés 6976 Statut Membre 515
     
    salut tigris..,

    Tout baignre depuis que tu es là..
    C'est moins plilosophique. C'est net.

    Cordialement  et @+ 
    Amato non sarai, se a te solo penserai.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Fred_L
     
    Est ce que quelqu'un est arrivé à avoir la date - 1 ?

    J'ai vu que si on a par exemple la date 12/11/2004, en faisant:
    Set /a J-1 = %DATE:~5,-8% - 1
    Set /a M-1= %DATE:~8,-5%
    Set /a A-1=%DATE:~11%
    Là j'ai bien 11/11/2004

    Mais lorsque j'ai un date avec un zéro : 02/09/2004 ça ne marche plus ! pour le jour... Et idem pour le mois...

    Une soluce ????

    Merci
    0
  7. Fred_L
     
    Ok sidarus, merci pour le mail, mais au Poste <9> je ne vois rien qui puisse me donner la date - 1 !

    Mais pas grave j'ai fais autrement ... tous simplement en enregistrant la date dans un fichier que je compare le lendemain...

    La veille j'écrit:
    Echo %DateTime% > Concat\Concat.log

    et le mendemain je controle:
    If Not Exist Concat\Concat.log goto NoConcat
    For /F " tokens=1 delims=" %%i IN (Concat\Concat.log) do @set ConcTime=%%i

    If %ConcTime% == %DateTime% goto Fin

    :NoConcat

    Suite du traitement.....

    :Fin

    Bon Ok y'a surement une solution plus simple.. mais je ne l'ai pas trouvé ! Et personne ne me l'a dite !
    0
  8. sidarus Messages postés 387 Statut Contributeur 112
     
    (Le mail c'est pas moi... faut que tu désactive le suivi du forum)

    Bon visiblement tu as le meme pb que coudezef (post <10>).
    Vérifies ce que te retourne la variable %date% en tapant :

    Voici ce que j'obtiens (sur TOUS mes PCs) :
    C:\>echo %date% %time%
    31.08.2004 12:56:56.73

    (%date% %time%, et non %DateTime%)

    Si tel est le cas md %date% te cré un dossier %date%. En tapant une 2x fois cette commande tu obtiens le message "Un sous-répertoire ou un fichier 31.08.2004 existe déjà" ce qui prouve que le dossier a été créé.

    ~°sidarus°~
    0
  9. Diams
     
    ^'est pas dans le sujet précis quoi que...

    Moi je créée des BATCH très puissant à partir d'EXCEL
    Je crée une hierarchie complète ainsi que des sous-dossiers.

    Il est possible de même faire les noms long si l'on place les parenthèses.

    Pour ce faire, j'utilise la première colonne concaténée comme source de mon batch. Puis je la copie colle dans notepad et ainsi je peux créer un millier de dossiers et sous-dossiers.

    Mais attention, le nombre de dossiers ne devrait pas dépasser 300MAXI dans une hierarchie directe.

    de plus la copie vers le bas avec incrémentation d'Excel se révèle très utile.

    Ainsi que le TRAIT DROIT obtenu sur vos claviers avec le signe ¦ qui se fransforme en | dans votre système.

    Attention de respecter la notion des espaces, les noms court, sans accent, les underline à la place des espaces si vous ne voulez pas utiliser les "chemin texte " pour les noms long.

    testez cela en batch

    -----------------------------------------------------------------------
    md 1_08_2004|md 1_08_2004\word|md 1_08_2004\excel|md 1_08_2004\word\correspondance

    md 1_09_2004|md 1_09_2004\word|md 1_09_2004\excel|md 1_09_2004\word\correspondance

    -----------------------------------------------------------------------

    Pour infos

    Eric
    0
  10. sidarus Messages postés 387 Statut Contributeur 112
     
    EXEMPLE FONCTIONNEL

    FOR /F "tokens=1-3 delims=./: " %%a IN ('DATE/T') DO SET date=%%a-%%b-%%c
    
    MD c:\backup_du_[%date%]


    RESULTAT : c:\backup_du_[31-08-2004]

    ADAPTATIONS POSSIBLES :

    1/ delim
    - delims=. <--%date% = JJ.MM.AA
    - delims=/ <--%date% = JJ/MM/AA
    - delims=: <-- %date% = JJ:MM:AA

    2/ date
    - date=%%a-%%b-%%c = 31-08-2004
    - date=%%a.%%b.%%c = 31.08.2004
    - date=%%a%%b%%c = 31082004
    - ...

    3/ MD
    - md %date%
    - md c:\backup_du_[%date%]
    - ...

    ~°sidarus°~
    0
  11. Fred_L
     
    Avé Sidarius,

    Quand je tape %Date% J'ai mar. 31/08/2004

    Le DateTime que j'ai c'est une variable initialisée comme suit:

    set DateTime= %DATE:~5,-8%%DATE:~8,-5%%DATE:~11%

    Elle contient 31082004

    Bon mon usine a gaz fonctionne maintenant, mais ça aurait été plus simple si j'avais pu avoir la date antérieur par simple %Date% -1...

    M'enfin la sauvegarde de la date tous les jours dans un .txt ça marche bien aussi !!

    En fait je créé des Rapports tous les jour avec la date et l'heure Heure / Heure ( Rapport General du 30082004 7h00.txt ... etc ), et le lendemain, donc le 31, je concatène les fichiers du 30 sous la forme ( RapportJ-1.txt ) et ce pendant 6 jours, le 7 jour je concatène tous en ( Rapport Semaine -1.txt ).
    Voilà pourquoi je cherchais à avoir date -1 ...

    Yo conprendo ?

    Si je fais un copier coller du .cmd tu vas prendre peur !! lol

    ;-) Fred
    0
    1. sidarus Messages postés 387 Statut Contributeur 112
       
      Re Fred_L

      Connais-tu l'usage de .LOG en 1ère ligne dans unTXT ?
      Cette formule ne te conviendrais pas ?

      Extrait Aide NotePad :
      Pour ajouter un journal à la fin d'un document
      Sur la première ligne d'un document Bloc-notes, tapez l'extension suivante depuis la marge de gauche, en veillant à utiliser des majuscules et à ne pas oublier le point :
      .LOG

      Dans le menu Fichier, cliquez sur Enregistrer.

      Remarque

      Chaque fois que vous ouvrirez ce document, le Bloc-notes ajoutera à la fin l'heure et la date actuelles, telles qu'elles sont définies par l'horloge de votre ordinateur.


      ~°sidarus°~
      0
    2. Fred_L
       
      Je connait le .LOG, mais cela ne me va pas....

      Ce que je cherchait vraiment, c'est qu'aujourd'hui 31/08/2004 je puisse par une simple comande avoir la date d'hier... 30/08/2004 ou date -2 29/08/2004.. etc....

      Mais a priori on ne peut pas !
      Sauf faire comme j'ai fait.... je jour aujourd'hui sauver la date dans un fichier de façon à ce que demain je puisse avoir la date - 1....

      Mais rassure toi, je finirais bien par trouver une solution plus simple !

      @+ Fred
      0
    3. sidarus Messages postés 387 Statut Contributeur 112
       
      Au fait tu veux le résultat de %date%=%date% -1

      C'est en principe possible puisque tout système dispose d' une fonction temporel retournant le nombre de seconde écoulées depuis une date définie, le 01.01.1900 (si je ne m'abuse).

      Il s'uffit dans ce cas de faire ceci :
      - convertir %time% en %sec écoulées dans 1 journé
      - convertir %date% en %jrs écoulés depuis le 01.01.1900
      %now = %jrs * %sec         REM %now = %date% + %time%
      %hier = %now - 60*60*24    REM 1 jr = 86400 sec
      

      ... ça peut etre un exercice sympa :)

      ~°sidarus°~
      0
  12. Fred_L
     
    Pour ceux que ça intéresse... Car des fois on cherche mais on trouve pas !

    Demande d'info à l'utilisateur : ( Message box )

    Elle est appelée comme ça depuis les autre .cmd:

    Call InputBox.cmd "Entrez le mot de passe pour xxxx :" "Indice que tu veux xxxx"

    InputBox.cmd
    -----------------------------------------------------------------------
    @echo off
    COLOR 0A
    CLS
    if Not %2 == "" goto Argv1
    Echo.
    Echo.
    Echo.
    Echo.
    Echo %1
    Echo.
    Goto Argv2

    :Argv1

    Echo.
    Echo.
    Echo.
    Echo.
    Echo %1
    Echo.
    Echo %2
    Echo.

    :Argv2
    Echo ( Pour valider taper ENTER, puis F6, puis ENTER )

    Copy con Input
    for /F " tokens=1 delims=" %%i in (Input) do @set ResBox=%%i%

    Del Input
    Cls

    -------------------------------------------------------------

    Recup du path ou est lancé le script... Ca peut être utile si celui-ci est déplacé dans un sous répertoire ou sur un autre partage !

    *************************************************

    REM ------------------------------------------------
    REM Récupération du Path ou est lancé le script
    REM ------------------------------------------------
    for /f %%i in ('cd') do @set Drive=%%i
    cd ..
    for /f %%i in ('cd') do @set Drive2=%%i

    Renvoi C:\Script\Automatisation quand on tape Echo %Drive%
    Renvoi C:\Script\ quand on tape Echo %Drive2%

    ***************************************************
    Tien... Un script qui peut intéresser du monde..

    J'avais besoin dans mes automatisation de mettre la clé registre [HKEY_USERS\S-1-5-21-815036413-821321335-1845911597-4016\Software\Microsoft\Internet Explorer\Main] "Start Page" avec la valeur "about:blank".

    Le problème c'est qu'en fonction de la session, le SID change !
    ( S-1-5-21-xxxxxxxxx )

    Alors je me suis fais ........ Pour trouver une solution... donc la voilà :

    RecupSID.cmd

    ------------------------------------------------------------------------
    @echo off
    REM ----------------------------------------------------------------------------------
    REM Recupération du SID de HKEY_USERS Pour mettre about.blank en page de démarrage d'IE
    REM ----------------------------------------------------------------------------------
    for /f %%i in ('cd') do @set Drv=%%i
    cd ..
    for /f %%i in ('cd') do @set Hdd=%%i\
    cd %Drv%

    REM ----------------------------------------------------------------------------------
    REM On prend toute la branche HKEY_USERS et on l'export vers Home.reg
    REM ----------------------------------------------------------------------------------

    REGEDIT /E/A Home.reg "HKEY_USERS"

    REM ----------------------------------------------------------------------------------
    REM On recherche le SID S- dans notre Home.reg et on le fou la ligne dans un autre fichier reg.txt
    REM ----------------------------------------------------------------------------------
    FINDSTR "S-" "Home.reg" > reg.txt

    REM Ici j'ai un fichier avec que les lignes qui ont [HKEY_USERS\S-1-5-21-815036413-821321335-1845911597-4016

    set Nbre=1
    :Loop
    REM Recupération de la ligne sans [HKEY_USERS

    for /F " tokens=%Nbre% delims=\" %%i in (Reg.txt) do @set ResBox=%%i%
    REM On enregistre la valeur de %i dans UID ( pas besoin de .txt)
    Echo %ResBox% > UID

    REM ok j'ai plus que S-xxxxxxxxxxxxxxx au deuxieme passage

    If %Nbre%==2 goto suite
    Set /a NewNbre=%Nbre%+1
    Set Nbre=%NewNbre%

    goto Loop

    :Suite
    REM Je supprime la fin ( S-xxxxx-xxxxx-xxxxx_classe.......)

    for /F " tokens=1 delims=_" %%i in (UID) do @set SID=%%i%
    REM Voila j'ai mon SID au format S-1-xxxxx-xxxxx-xxxxx

    Del UID
    DEL Reg.txt
    Del Home.reg

    REM %Hdd% c'est là où je veux que mon fichier soit

    echo Windows Registry Editor Version 5.00 > %Hdd%About-Blank.reg
    echo. >> %Hdd%About-Blank.reg
    echo [HKEY_USERS\%SID%\Software\Microsoft\Internet Explorer\Main] >> %Hdd%About-Blank.reg
    echo "Start Page"="about:blank" >> %Hdd%About-Blank.reg

    -------------------------------------------------------------------------

    Et voilà un SID tout beau tout neuf !

    @+ Fred
    0
  13. Fred_L
     
    Encors une petite chose :

    Au cours de mes scripts, je me suis apperçue que les boucle FOR ne marche pas bien arrivée à 15 voir 18 pour le tokens.
    J'ai eu le cas lors de tests sur des pages internet et sur des serveurs...

    Du coups il faut ruser.... Cf en dessous

    J'ai pas mis le début du scrip mais seulement la boucle :

    *****************************************************

    REM--------------------------------------------------------------------
    REM Initialisation des variables
    REM--------------------------------------------------------------------
    Set Nbre=1
    Set Command=C:\WINNT\System32\LogFiles\Test.cmd
    Set FileTemp=LogComponents.txt

    REM ------------------------------------------------------------------------------
    REM Il y a trop de serveurs pour le For Cf deuxième StrInput dans la boucle
    REM -----------------------------------------------------------------------------
    Set StrInput=ntintfr00208-ntintfr00209-ntintfr00213-ntintfr00214-ntintfr00218-ntintfr00219-ntintfr00221-ntintfr00222-ntintfr00223-ntintfr00224-EndFile

    REM -----------------------------------------
    REM Debut de Boucle Pour les serveurs
    REM -----------------------------------------

    :MyLoop2
    for /F " tokens=%Nbre% delims=- " %%i in ("%StrInput%") do @set Ci=%%i%

    REM ------------------------------------------------------
    REM Selon resultat du FOR Définition des variables
    REM ------------------------------------------------------
    If %Ci% == EndFile goto OutComp

    echo Test %Ci%....
    Echo.

    REM ------------------------------------------------------------------
    REM TempRapport.txt afin de mettre les erreurs en début de rapport
    REM --------------------------------------------------------------------
    Echo. >> TempRapport.txt
    Echo Test Component sur le serveur %Ci%.... a %TIME:~0,-9%h%TIME:~3,-6% >> TempRapport.txt
    Echo ------------------------------------------------------ >> TempRapport.txt
    Echo. >> TempRapport.txt
    Echo. >> TempRapport.txt
    Echo. >> TempRapport.txt

    REM -------------------------------------------------------------------
    REM Execution du Script VBS via un fichier cmd sur le serveur distant car psexec ne prend pas en charcge le vbs directemnt
    REM--------------------------------------------------------------------
    psexec \\%Ci% -u %User% -p %Password% %Command% >> TempRapport.txt

    Echo. >> TempRapport.txt
    Echo. >> TempRapport.txt
    Echo. >> TempRapport.txt

    REM ------------------------------------------------------
    REM Recuperation du fichier du Serveur distant
    REM ------------------------------------------------------

    Echo User %User% >> RecupFTP
    Echo %Password% >> RecupFTP
    Echo Get %FileTemp% >> RecupFTP
    Echo Quit >> RecupFTP

    REM --------------------------------------------------------------------
    REM Recup du fichier créé par le Vbs sur le serveur
    REM --------------------------------------------------------------------
    ftp -n -s:RecupFTP %Ci%

    Del RecupFTP

    Echo. >> TempRapport.txt
    Echo Fichier LogComponent %Ci% du %DATE:~5,-8%%DATE:~8,-5%%DATE:~11% a %TIME:~0,-9%h%TIME:~3,-6% >> TempRapport.txt
    Echo ------------------------------------------------ >> TempRapport.txt
    Echo. >> TempRapport.txt
    Echo. >> TempRapport.txt
    Echo. >> TempRapport.txt

    REM ----------------------------------------------------------------
    REM Recherche du Nom du serveur dans le fichier temporaire
    REM ----------------------------------------------------------------
    FINDSTR "%Ci%" "%FileTemp%" >> ErrorComponent.txt
    Echo Erreur sur les Composents de %Ci% >> ErrorComponent.txt
    Echo ---------------------------------------- >> ErrorComponent.txt
    REM ----------------------------------------------------------------
    REM Recherche d'erreur dans le fichier temporaire
    REM ----------------------------------------------------------------
    FINDSTR "failed" "%FileTemp%" >> ErrorComponent.txt
    Echo. >> ErrorComponent.txt
    Echo. >> ErrorComponent.txt
    Echo. >> ErrorComponent.txt
    Echo. >> ErrorComponent.txt

    Type %FileTemp% >> TempRapport.txt

    REM -----------------------------
    REM Suppression du Fichier
    REM -----------------------------
    Del %FileTemp%

    REM -------------------------------------------------------------------
    REM Deuxième partie de StrInput car trop de seuveurs pour le FOR
    REM -------------------------------------------------------------------
    If %Nbre% == 10 goto SFor
    goto NSFor

    :SFor
    Set StrInput=ntintfr00233-ntintfr00234-ntintfr00235-ntintfr00236-ntintfr00237-EndFile
    Set Nbre=1

    :NSFor


    REM -----------------------------------
    REM Incrementation de la boucle
    REM -----------------------------------
    Set /a NewNbre=%Nbre%+1
    Set Nbre=%NewNbre%

    REM --------------------------------------------------------------
    REM Suppression de la connexion créée par psexec avec le serveur
    REM --------------------------------------------------------------

    Net Use /Delete \\%Ci%

    goto MyLoop2

    *****************************************************

    Pour ceux qui veulent le script en entier :
    frlenti(at)free(point)fr

    @+ Fred
    0
  14. Fred_L
     
    :SFor
    Set StrInput=ntintfr00233-ntintfr00234-ntintfr00235-ntintfr00236-ntintfr00237-EndFile
    Set Nbre=1
    0
  15. Fred_L
     
    Oups !!!

    Merci le forum..je viens de m'appercevoir que l'un de mes serveur passait au travers...
    Nbre = 0 et non 1 puisque j'increment derière...

    :SFor
    Set StrInput=ntintfr00233-ntintfr00234-ntintfr00235-ntintfr00236-ntintfr00237-EndFile
    Set Nbre=0 et non 1
    0
  16. Fred_L
     
    Oups !!!

    Merci le forum..je viens de m'appercevoir que l'un de mes serveur passait au travers...
    Nbre = 0 et non 1 puisque j'increment derière...

    :SFor
    Set StrInput=ntintfr00233-ntintfr00234-ntintfr00235-ntintfr00236-ntintfr00237-EndFile
    Set Nbre=0 et non 1
    0
  17. sidarus Messages postés 387 Statut Contributeur 112
     
    Bon puisque tu fais les questions/réponses on te laisse :)

    A quand la dicerte ? ;)

    ~°sidarus°~
    0
  18. Fred_L
     
    Oups ! je te sens pas là Mister Sidarius !

    Je ne fais que partager ce que je fais afin de donner des exemples... c'est tellement difficile de les trouver parfois !

    pour la date - 1 je finirais bien par trouver ... et pour reprendre Blux :
    "Les cons, ça ose tout.
    C'est même à ça qu'on les reconnait"

    @+ et sois pas fâcher Sidarius, je suis sur que tu connais plien de bonnes choses toi aussi ;-)
    0
    1. hourrrah Messages postés 6976 Statut Membre 515
       
      salut Fred_L,
      Sans valoir (trop) m'immiscer, il peut sembler que Sidarus n'a pas tort...dans sa remarque..
      TU as dû aligner 6-7 messages à se suivre.. mais c'est ça, sans doute, aussi, la passion de la recherche et de la découverte...

      Cordialement  et @+ 
      Chi cerca, trova.
      0
    2. sidarus Messages postés 387 Statut Contributeur 112
       
      Disons que j'ai beau relire mais là j'avoue m'y perdre. T'as noyé le poisson :P Pourrais tu refaire un poste récapitulif avec :

      - objetif(s)
      - méthode/marche a suivre retenue
      - script commenté (REM)
      - mise en page/présentation (<tag>)

      PS: tu remarquera que cette discipline je me l'applique a moi meme dans le simple but de "faire passer" le message et ce quel que soit le niveau du lecteur. C'est, disons-le, déontologiquement professionel et hétiquement respectueux envers ceux dont l'attention est sucitée.

      Cordialement

      ~°sidarus°~
      0
  19. ShortCuT Messages postés 424 Statut Membre 87
     
    bonjour ,
    pour mon boulot j'ai fait un ptit programme qui chaque jour creer un dossier avec la date et creer un backup des db
    dans l'interface la fréquence de sauvegarde , les données a sauver et la destination sont parametrable si ca t'interesse et si ca peut t'aider

    --> shortcut.be@gmail.com

    j'ai fait ca vite fait en delphi

    ------------------------------
    Gwen
    0
    1. djest_02 Messages postés 4 Date d'inscription   Statut Membre
       
      bonjour,je voudrais appprendre à ecrire un batch pour sauvegarder chaque jour et à une heure precise mes donnees.merci et a bientot.
      0
  20. Nuke4all
     
    Je suis tombe sur ce Forum pile poil quand il fallait apparamment...

    Moi j'ai essaye toutes les solutions que vous avez proposé ci-dessus et y'en a qu'une qui marche si je la modifie :

    FOR /F "tokens=1-4 delims=/: " %a IN ('DATE/T') DO SET date=%a%b-%c-%d
    FOR /F "tokens=1-2 delims=:" %a IN ('TIME/T') DO SET time=%ah%b
    mkdir C:\Sauvegardes\%date% %time%

    Mais mon probleme -sinon j'aurais pas dérangé des gens avec un si haut niveau (je me suis pissé dessus en voyant les post du forum)- c'est que ca marche seulement si je les entre en commandes, mais pas si elles sont executees depuis un fichier.bat. Je deprime...
    En plus je suis sous windows XP pro ca devrait pas poser de pb.

    Mystère ...

    Par contre ShortCut ton prog en Delphi m'interresse comme la confiture interresse les cochons. Si tu pouvais gaspiller 5 minutes de ton temps et me l'envoyer a nuke4all@wanadoo.fr, j'en serais tres honoré et soulagé d'un grand poids ...
    0
    1. sidarus Messages postés 387 Statut Contributeur 112
       
      Et vi le pb c'est que tu as modifié (cf post <28>) et sans faire exprès tu y a introduits qq erreurs ;)

      Non pas

      FOR /F "tokens=1-4 delims=/: " %a IN ('DATE/T') DO SET date=%a%b-%c-%d
      FOR /F "tokens=1-2 delims=:" %a IN ('TIME/T') DO SET time=%ah%b
      mkdir C:\Sauvegardes\%date% %time%
      


      Mais

      FOR /F "tokens=1-3 delims=/." %%a IN ('DATE/T') DO SET date=%%a-%%b-%%c
      FOR /F "tokens=1-2 delims=:" %%a IN ('TIME/T') DO SET time=%%a'%%b
      md "C:\Sauvegardes\%date% %time%"


      Et oui les langages formels ça pardonne pas.
      Y a 2 types d'erreur : syntaxique / sémantique
      - syntaxique = bug
      - sémantique = pas de bug mais le résultat n'est pas logique (sémantique)

      1/ DATE = jj/mm/aa (3 valeurs) => "tokens=1-3" (et non 1-4)
      2/ si %date% = jj/mm/aa OR jj.mm.aa => "delims=/. " (et non /:)
      3/ %%var (et non %var)
      4/ puisqu'il y a 1 "espace" entre %date% et %time% tu dois encadrer le tout par des "".


      ~°sidarus°~
      0
    2. sidarus Messages postés 387 Statut Contributeur 112
       
                    tokens----+ 
                      |       |
                  +---+---+   |
                  |   |   |   |
        DATE/T-->JJJ.MMM.AAA--+-->%%a %%b %%c
                    |   |
                    +-+-+
                      |
                    delims



      ~°sidarus°~
      0
  21. ShortCuT Messages postés 424 Statut Membre 87
     
    oui je te filerai ca , je doit le recup sur le server , j'ai pas garder ca dans mes truc perso ...

    sinon tu peut choisir le repertoir source , celui de destination
    dans celui de destination il creer auto un rep "backup_date"

    tu peut spécifier comme frequence : 1/2 journée , chaque jour , chaque semaine .

    suivant ce que tu choisit tu peut spécifier l'heure ou le jour de la sauvegarde

    et alors ca t'affiche des stats ..... derniere sauvegarder , prochaine , nombre total de sauvegarder etc .
    si une sauvegarde existe deja il creer un dossier

    copie (1) de backup_02092004

    comme j'ai utiliser l'API windows de la fonction copier y'a aucun probleme , je t'envoie ca demain .

    envoie un mail sur shortcut.be@gmail.com , histoire que j'oublie pas
    ------------------------------
    Gwen
    0
  • 1
  • 2
  • 3