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 :

Problème avec Xcopy fonction /d:date. Syntaxe ? [Batch]


Sujet :

Scripts/Batch

  1. #1
    Membre éclairé Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Points : 813
    Points
    813
    Par défaut Problème avec Xcopy fonction /d:date. Syntaxe ?
    Bonjour,

    Je reposte ici, car je crois avoir posté dans la mauvaise section auparavant. J'ai fait un programme, qui à l'aide de la date actuelle, va copier tous les fichiers modifiés à la date - 1 mois d'un répertoire vers un autre répertoire, en ne copiant que les fichiers non présents ou ceux modifiés.

    Le souci, c'est que pour la date via l'ordinateur en 2010 il ne copie rien, alors que si je passe ma date ordinateur en 2009 il copie alors mes fichiers, pourquoi ?

    Problème

    Voici les fichiers présent dans mon répertoire source :

    nom : FichierA.pptx taille : 580ko date de modification : 06/02/2010 09.22
    nom : FichierB.rtf taille : 320ko date de modification : 20/01/2010 14.39
    nom : FichierC.docx taille : 711ko date de modification : 03/02/2010 11.45
    nom : FichierD.doc taille : 19ko date de modification : 10/02/2010 16.37

    Voici le programme :

    Set jour=%date:~0,2%
    Set mois=%date:~3,2%
    Set annee=%date:~6,4%
    Set lol=%mois:~0,1%


    If "%lol%"=="0" Set mois=%mois:~1%

    Set /a varmois=%mois%-1

    @ echo off

    if "%varmois%"=="0" set varmois=12
    if "%varmois%"=="12" set /a annee=%annee%-1
    if "%varmois%"=="1" set varmois=01
    if "%varmois%"=="2" set varmois=02
    if "%varmois%"=="3" set varmois=03
    if "%varmois%"=="4" set varmois=04
    if "%varmois%"=="5" set varmois=05
    if "%varmois%"=="6" set varmois=06
    if "%varmois%"=="7" set varmois=07
    if "%varmois%"=="8" set varmois=08
    if "%varmois%"=="9" set varmois=09

    set vardate=%jour%-%varmois%-%annee%

    @ echo %vardate%

    pause


    xcopy D:\MSSQL\dossierA\*.* D:\MSSQL\dossierB\*.* /d:%vardate% /y /i

    pause
    Quand je lance mon programme, avec la date d'aujourd'hui par exemple, date = 05/03/2010, et donc vardate = 05/02/2010, je devrais donc avoir dans mon dossierB :

    fichierA
    fichierB

    Mais il ne copie rien pourquoi, alors que si date ordinateur = 05/03/2009 (soit une année en arrière) il copie les 4 fichiers ?

    Test1

    Même quand je force la date dans un simple .bat

    xcopy D:\MSSQLBIS\dossierA\depar\*.* D:\MSSQLBIS\dossierB\arriv\*.* /d:05-02-2010 /y /i
    Ca ne marche pas.

    Alors que :

    xcopy D:\MSSQLBIS\dossierA\depar\*.* D:\MSSQLBIS\dossierB\arriv\*.* /d:05-02-2009 /y /i
    Là il me copie bien mes fichiers.

    Peut-être qu'il ne compare que les années, je ne comprend plus rien.

    Test2

    J'ai fait un autre test :

    date ordinateur 05/03/2009 donc vardate 05/02/2009

    Dans D:\MSSQLBIS\dossierA\depar\ j'ai mis :

    nom : FichierE.docx taille : 711ko date d emodification 08/02/2009 11.55
    nom : FichierA.pptx taille : 580ko date de modification : 06/02/2010 09.22
    nom : FichierB.rtf taille : 320ko date de modification : 20/01/2010 14.39
    nom : FichierC.docx taille : 711ko date de modification : 03/02/2010 11.45
    nom : FichierD.doc taille : 19ko date de modification : 10/02/2010 16.37

    Quand j'exécute mon programme, il me copie les 4 fichiers de 2010, et pas celui de 2009, qu'il devrait normalement copier.

    Conclusion : Xcopy .............. ............... D:date ne compare que l'année ...

    Y a-t-il quelquechose que je fais mal pour qu'il ne compare pas la date intégrale ? Est-ce la fonction Xcopy /d:date qui ne fonctionne pas?

    Sinon si vous voyez une façon plus simple de faire ce que je cherche à faire, par exemple en vbs or idk, n'hésitez pas.

    Merci de vos réponses.
    Geeker c'est comme manger, on ne peut pas s'en passer !!!

    Tout est objet !!!

    ____________________________________

    http://www.geekingmania.com

  2. #2
    Membre éclairé Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Points : 813
    Points
    813
    Par défaut
    Bon ben voilà, pourquoi je trouve vraiment que windows c'est de la merde :

    Dans l'invite de commande :

    C:\date
    La date du jour est : 05/03/2010
    Entrez la nouvelle date du jour : (jj-mm-aa)
    C:\
    Ou encore :

    C:\help xcopy
    /D : j-m-a
    Donc le format de la date, jour-mois-année

    Maintenant j'éxécute une commande toute bête

    C:\xcopy "D:\testd\*.*" "D:\testa\*.*" /d:29-12-2009 /y /i
    Paramètre non valide - /d:29-12-2009
    Enfin :

    C:\xcopy "D:\testd\*.*" "D:\testa\*.*" /d:12-29-2009 /y /i
    1 fichier(s) copié(s)
    Conclusion format date : mm-jj-aaaa pour la fonction xcopy (je ne sais pas d'où cela vient soit dit en passant).


    Correction de mon code :

    vardate=%varmois%-%jour%-%annee%
    Si quelqu'un à un avis sur la question, j'ai du perdre plus de 4h avec ce problème ...
    Geeker c'est comme manger, on ne peut pas s'en passer !!!

    Tout est objet !!!

    ____________________________________

    http://www.geekingmania.com

  3. #3
    Membre éclairé Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Points : 813
    Points
    813
    Par défaut
    Juste pour info :

    Il y a effectivement une différence entre help xcopy et l'aide dans démarrer -> Aide et support -> Références de A à Z de la ligne de commande -> xcopy

    Format date : mm-jj-aaaa
    Geeker c'est comme manger, on ne peut pas s'en passer !!!

    Tout est objet !!!

    ____________________________________

    http://www.geekingmania.com

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 13
    Points : 16
    Points
    16
    Par défaut MERCI!
    j'ai grillé 1/2 matinée à chercher une solution et chercher d'autres utilitaires pour faire correctement ce que je voulais faire...

    MERCI methylene pour ce post! Je vais pouvoir partir en vacance sereinement et sans laisser de taf à l'équipe

    Comme toi j'ai aussi eu le soucis de MM-JJ-AAAA. Cela vient sans doute de la dénomination américaine. J'avoue m'être dit "non je ne vais pas tester ça, ils sont assez correcte pour fournir des infos correctes... c'est moi qui doit faire une erreur..."

    Alors un big THX


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Dates] Problème avec la fonction date()
    Par Kernald dans le forum Langage
    Réponses: 5
    Dernier message: 16/02/2007, 11h50
  2. problème avec la fonction date()
    Par puppusse79 dans le forum Access
    Réponses: 4
    Dernier message: 24/03/2006, 15h59
  3. [Dates] Problème avec la fonction header
    Par d.w.d dans le forum Langage
    Réponses: 2
    Dernier message: 06/09/2005, 16h33
  4. Problème avec une fonction date.
    Par kmayoyota dans le forum ASP
    Réponses: 8
    Dernier message: 09/09/2004, 12h33

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