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 :

Xcopy avec date variable "il y a 1 mois" [Batch]


Sujet :

Scripts/Batch

  1. #1
    Candidat au Club
    Homme Profil pro
    Fonctionnaire
    Inscrit en
    Mars 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Fonctionnaire
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2018
    Messages : 2
    Par défaut Xcopy avec date variable "il y a 1 mois"
    Bonjour à tous!

    Je suis complétement débutant en Batch...
    Je cherche à créer un batch pouvant copier seulement les fichiers d'un répertoire modifiés il y a moins d'un mois à l'aide de la commande /D:
    Le problème, c'est que la date n'est pas prise en compte, et le Batch ne copie rien...
    Voici un extrait de mon Batch, si quelqu'un peut m'aider à y voir plus clair!

    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
    @echo off
    setlocal enableDelayedExpansion
    Set jr=%DATE:~0,2%
    Set ms=%DATE:~3,2%
    Set ane=%DATE:~6,4%
    set test=
    
    Set jrx=%DATE:~0,2%
    Set msx=%DATE:~3,2%
    Set anex=%DATE:~6,4%
    set /a msx=%msx:~1%-1
    set demain=%jrx% %msx% %anex%
    
    echo Il y a 1 mois : %test%
    echo Jour %jrx%
    echo Mois %msx%
    echo Année %anex%
    pause
    
    xcopy C:\Users\%username%\Documents F:\System_Volume_Information\Documents /S /C /Y /Q /D:%jrx%-%msx%-%anex% /Exclude:Excluded_list.txt


    La partie comprenant les "echo" fonctionne très bien : la date affichée en première ligne est bien celle d'il y a un mois, et les lignes suivantes qui me permettent de vérifier la date décomposée fonctionne parfaitement (09, 02 et 2018 pour aujourd'hui).

    Merci d'avance!

  2. #2
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 844
    Par défaut

    Dans le help de la commande xcopy /?
    le switch /D:m-d-y
    m : Mois est en 1er lieu
    puis le jour : d
    puis l'année : y

    Essayez de changer cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xcopy C:\Users\%username%\Documents  F:\System_Volume_Information\Documents /S /C /Y /Q /D:%jrx%-%msx%-%anex%  /Exclude:Excluded_list.txt
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xcopy C:\Users\%username%\Documents  F:\System_Volume_Information\Documents /S /C /Y /Q /D:%msx%-%jrx%-%anex%  /Exclude:Excluded_list.txt

  3. #3
    Candidat au Club
    Homme Profil pro
    Fonctionnaire
    Inscrit en
    Mars 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Fonctionnaire
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2018
    Messages : 2
    Par défaut
    Mais quel boulet !!
    J'ai passé la nuit à essayer tout (et surtout n'importe quoi...) SAUF changer l'ordre de la date!!
    ça marche à merveille, merci Hackoofr pour ce petit coup de main! ;)
    Je vous met le Batch que j'ai fait, si jamais ça peut servir à quelqu'un... :)



    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
    @echo off
    setlocal enableDelayedExpansion
    Set jr=%DATE:~0,2%
    Set ms=%DATE:~3,2%
    Set ane=%DATE:~6,4%
    set test=
    
    if %ms%==1 (if %ms%==01 set test=%jr% 12 %ane%-1
    )else (
    goto Dateplus)
    
    
    if %jr%==31 (if %ms%==01 set test=%jr% 12 %ane%-1
    )else (
    goto Dateplus)
    
    if %jr%==31 (if %ms%==03 set test=28 02 %ane%
    )else (
    goto Dateplus)
    
    if %jr%==30 (if %ms%==04 set test=30 03 %ane%
    )else (
    goto Dateplus)
    
    if %jr%==31 (if %ms%==05 set test=30 04 %ane%
    )else (
    goto Dateplus)
    
    if %jr%==30 (if %ms%==06 set test=30 05 %ane%
    )else (
    goto Dateplus)
    
    if %jr%==31 (if %ms%==07 set test=30 06 %ane%
    )else (
    goto Dateplus)
    
    if %jr%==31 (if %ms%==08 set test=30 07 %ane%
    )else (
    goto Dateplus)
    
    if %jr%==30 (if %ms%==09 set test=30 08 %ane%
    )else (
    goto Dateplus)
    
    if %jr%==31 (if %ms%==10 set test=30 09 %ane%
    )else (
    goto Dateplus)
    
    if %jr%==30 (if %ms%==11 set test=30 10 %ane%
    )else (
    goto Dateplus)
    
    if %jr%==31 (if %ms%==12 set test=30 11 %ane%
    )else (
    goto Dateplus)
    
    :Datenormal
    echo Il y a 1 mois : !test!
    
    :Dateplus
    Set jrx=%DATE:~0,2%
    Set msx=%DATE:~3,2%
    Set anex=%DATE:~6,4%
    set /a msx=%msx:~1%-1
    set test=%jrx% %msx% %anex%
    
    echo Il y a 1 mois : %test%
    echo Jour %jrx%
    echo Mois %msx%
    echo Année %anex%
    
    xcopy (source) (destination) /S /C /Y /Q /D:%msx%-%jrx%-%anex%

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

Discussions similaires

  1. Xcopy Vbs Date Variable
    Par Phili34 dans le forum VBScript
    Réponses: 9
    Dernier message: 14/01/2018, 15h35
  2. Créer un rdv Outlook avec date variable
    Par GADENSEB dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 07/01/2015, 16h52
  3. [AC-2007] syntaxe vba recordset avec Date() et variable long
    Par Chris 81 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 19/06/2011, 10h25
  4. BASH: date avec argument variable
    Par Estats dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 27/10/2008, 14h12
  5. Requête selection avec une variable de date
    Par kahmsin dans le forum Access
    Réponses: 7
    Dernier message: 20/11/2005, 19h38

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