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 :

Liste de fichiers par date de modification et copie


Sujet :

Scripts/Batch

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 6
    Points : 1
    Points
    1
    Par défaut Liste de fichiers par date de modification et copie
    Bonjour,

    Je dois créer un batch qui va parcourir plusieurs sous répertoires et faire une liste des fichiers dont la date de création (ou modification) à dépasser une date limite, par exemple 1 jour.

    Je ne sais pas comment créer cette liste.

    J'ai regardé pas mal de topic à ce sujet mais je comprend pas tout et le code est rarement commenté.

    Est ce que quelqu'un pourrait éclairer ma lanterne?

    Merci d'avoir pris le temps de me lire.

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Je viens d'essayer ca mais ca ne m'affiche pas la liste des fichiers mais la date d'hier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    @echo off
    echo>_.vbs wscript.echo eval("date-1") 
    for /f "tokens=*" %%y in ('cscript/nologo _.vbs') do (set y=%%y) 
    echo HIER: %y%
    del _.vbs 2>nul
    pause

  3. #3
    Membre averti Avatar de plopi
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Mars 2011
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2011
    Messages : 191
    Points : 306
    Points
    306
    Par défaut
    Bonjour,

    pour ce genre de besoin il y a la commande "FORFILES"

    ça devrait faire l'affaire

  4. #4
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 840
    Points : 9 225
    Points
    9 225
    Par défaut

    FORFILES : http://technet.microsoft.com/en-us/l...8WS.10%29.aspx

    A télécharger ici : FTP://ftp.microsoft.com/reskit/y2kfix/x86/forfiles.exe et a coller dans c:\windows\system32\ bien sur

  5. #5
    Membre averti Avatar de plopi
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Mars 2011
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2011
    Messages : 191
    Points : 306
    Points
    306
    Par défaut
    Citation Envoyé par hackoofr Voir le message

    FORFILES : http://technet.microsoft.com/en-us/l...8WS.10%29.aspx

    A télécharger ici : FTP://ftp.microsoft.com/reskit/y2kfix/x86/forfiles.exe et a coller dans c:\windows\system32\ bien sur
    La commande est native, il n'y a pas besoin de télécharger quoi que ce soit...

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Merci pour vos réponses, je vais essayer tout de suite

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Alors voilà ou j'en suis, je liste les fichiers qui sont supérieur ou égale a la date du jour et je les copie dans un autre répertoire.

    Une fois qu'ils sont dedans il me reste a les envoyer sur un server FTP en ssh mais j'ai déjà trouvé la ligne de commande pour ça.

    Pour ce que ça intéresse:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    forfiles /p  C:\test /m *.pdf /s /c "cmd /c echo @file est un nouveau fichier." /d 0
    forfiles /p  C:\test /m *.pdf /s /c "cmd /c copy \"@FILE\" C:\test2 " /d 0
    pause
    Merci de votre aide en tout cas.

  8. #8
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    J'ai un autre problème, peut on gérer et si oui avec quel commande le copié/remplacé quand on est connecté à un ftp et qu'on utilise "put"?

    En gros si le fichier existe je ne le colle pas et si il n'existe pas je le colle.

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Personne n'a une idée? :/

  10. #10
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 840
    Points : 9 225
    Points
    9 225
    Par défaut
    Citation Envoyé par eKOMS Voir le message
    Personne n'a une idée? :/

    Non et Oui car je crois avec la commande PUT pour uploader un fichier elle fonctionne même si le fichier est présent dans le dossier distant je veux dire qu'elle peut l'écraser et l'uploader de nouveau mais à tester

    Les Commandes du FTP sous MS-DOS

    Commande ftp => Explication de la commande ftp
    • ! => Permet de repasser au shell (ligne de commande)
    • ? => Affiche les informations d'aide locales
    • cd => Change le dossier de travail distant
    • close => Termine la session ftp
    • dir => Liste le contenu du dossier distant
    • get => Pour télécharger le dossier distant
    • help => Pour obtenir de l'aide
    • lcd => Pour changer de répertoire local
    • lls => Liste les fichiers du répertoire local
    • ls => Liste les fichiers du répertoire distant
    • mkdir => Crée un dossier sur l'ordinateur distant
    • mget => Permet de récupérer plusieurs fichiers sur la machine distante
    • mput => Permet d'envoyer des fichiers sur la machine distante
    • open => Ouverture d'une connexion ftp distante
    • prompt => Active ou désactive l'intéractivité sur les commandes suivantes
    • put => Envoie un fichier sur la machine distante
    • pwd => Donne le chemin actuel sur la machine distante
    • rename => Renomme le fichier
    • rm => Efface le fichier sur la machine distante
    • rmdir => Supprime le répertoire sur la machine distante


    Exemples : [VBS] Folder2FTPUpload


    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
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    Dim FTPServer,Login,Password,NomDossier,CheminDossier
    Copyright = "FolderFTPUpload © Hackoo © 2012"
    
    '**********-Trois Paramètres à modifier-*************
    FTPServer = "VotreServeurFTP"
    Login = "VotreLogin"
    Password= "VotrePassword"
    '****************************************************
    
    Call Parcourir_Dossier()
    
    sub Parcourir_Dossier()
    Set objShell = CreateObject("Shell.Application")
    Set objFolder = objShell.BrowseForFolder(0, "Veuillez choisir un dossier pour uploader son contenu"&vbcr&vbTab&Copyright, 1, "c:\Programs")
    If objFolder Is Nothing Then
        Wscript.Quit
    End If
    NomDossier = objFolder.title
    CheminDossier = objFolder.self.path
    Question = MsgBox("Vous avez Choisi le Dossier " &qq(NomDossier)& " qui se localise dans ce chemin :" &Vbcr& qq(CheminDossier)&vbcr&VbTab&VbTab&VbTab&" Continuez ?",vbYesNo + vbQuestion,"Le Dossier Choisi est "&qq(NomDossier)&" "&Copyright)
    If Question = VbYes Then
    FolderFTPUpload FTPServer,Login,Password,CheminDossier,NomDossier
    else
    wscript.Quit
    End If
    end sub
    
    Function FolderFTPUpload(sSite, sUsername, sPassword, sLocalFolder, sRemotePath) 
      Const OpenAsDefault = -2
      Const FailIfNotExist = 0
      Const ForReading = 1
      Const ForWriting = 2
     
      Set oFTPScriptFSO = CreateObject("Scripting.FileSystemObject")
      Set oFTPScriptShell = CreateObject("WScript.Shell")
      Set ws = CreateObject("wscript.Shell")
      sRemotePath = Trim(sRemotePath)
      sLocalFolder = Trim(sLocalFolder)
      
      'Vérifier si le chemin, contient des espaces. 
      'si Oui,alors nous avons besoin d'ajouter des guillemets pour s'assurer qu'il passe correctement.
     
      If InStr(sRemotePath, " ") > 0 Then
        If Left(sRemotePath, 1) <> """" And Right(sRemotePath, 1) <> """" Then
          sRemotePath =  """"&sRemotePath&""""
        End If
      End If
     
      If InStr(sLocalFolder, " ") > 0 Then
        If Left(sLocalFolder, 1) <> """" And Right(sLocalFolder, 1) <> """" Then
          sLocalFolder = """"&sLocalFolder&""""
        End If
      End If
      
     sFTPTemp = oFTPScriptShell.ExpandEnvironmentStrings("%TEMP%")
      Call ContenuDossier(CheminDossier)
    
      Set f = oFTPScriptFSO.OpenTextFile(sFTPTemp &"\ContenuDossier.txt", ForReading, OpenAsDefault)
      LireTout = f.ReadAll
      Fichier = split(LireTout,VbcrLF)
      f.Close
      'construire un fichier de configuration pour passer les commandes ftp
      sFTPScript = sFTPScript & "USER " & sUsername & vbCRLF
      sFTPScript = sFTPScript & sPassword & vbCRLF
      sFTPScript = sFTPScript & "mkdir " & sRemotePath & vbCRLF
      sFTPScript = sFTPScript & "cd " & sRemotePath & vbCRLF
      sFTPScript = sFTPScript & "binary" & vbCRLF
      sFTPScript = sFTPScript & "prompt n" & vbCRLF
      For i=LBound(Fichier) to UBound(Fichier)-1
      sFTPScript = sFTPScript & "put "& Fichier(i) & vbCRLF
      Next
      sFTPScript = sFTPScript & "quit" & vbCRLF & "quit" & vbCRLF & "quit" & vbCRLF
     
      sFTPTempFile = sFTPTemp & "\" & oFTPScriptFSO.GetTempName
      sFTPResults = sFTPTemp & "\" & oFTPScriptFSO.GetTempName
      
     'Ecrire les commandes ftp à passer dans un fichier temporaire.
      Set fFTPScript = oFTPScriptFSO.CreateTextFile(sFTPTempFile, True)
      fFTPScript.WriteLine(sFTPScript)
      fFTPScript.Close
      Set fFTPScript = Nothing
     
      oFTPScriptShell.Run "%comspec% /c FTP -n -s:" & sFTPTempFile & " " & sSite & _
      " > " & sFTPResults,0, TRUE
     
      'Vérifier le résultat du Transfert de l'upload
      Set fFTPResults = oFTPScriptFSO.OpenTextFile(sFTPResults, ForReading, _
      FailIfNotExist, OpenAsDefault)
      sResults = fFTPResults.ReadAll
      fFTPResults.Close
     
      oFTPScriptFSO.DeleteFile(sFTPTempFile)
      'oFTPScriptFSO.DeleteFile (sFTPResults)
     
      If InStr(sResults, "226") > 0 Then
        FTPUpload = True
        MsgBox "Tout les fichiers contenu dans le Dossier : " &sLocalFolder& vbcr & vbcr & " ont été uploadés avec succés !"&vbcr&  LireTout,64,"Résultat du Transfert d'Upload "&Copyright
    
      ElseIf InStr(sResults, "File not found") > 0 Then
        FTPUpload = "Error: File Not Found"
        MsgBox "Erreur : Fichier Non Trouvé ?",16,"Erreur : Fichier Non Trouvé ? "&Copyright
      ElseIf InStr(sResults, "Login authentication failed") > 0 Then
        FTPUpload = "Error: Login Failed."
        MsgBox "Login authentication a echoué !",16,"Login authentication failed ! "&Copyright
      Else
        FTPUpload = "Error: Unknown."
        MsgBox "Erreur: Inconnu ?",16,"Erreur: Inconnu ? "&Copyright
      End If
     
      Set oFTPScriptFSO = Nothing
      Set oFTPScriptShell = Nothing
    End Function
    
    sub ContenuDossier(sLocalFolder)
    Set ws = CreateObject("wscript.Shell")
    Set FSO = CreateObject("Scripting.FileSystemObject")
    sFTPTemp = ws.ExpandEnvironmentStrings("%TEMP%")
    if fso.FileExists(sFTPTemp &"\ContenuDossier.txt") Then
      fso.DeleteFile sFTPTemp &"\ContenuDossier.txt"
    End if 
    Command ="cmd /c for %I in ("&sLocalFolder&"\*.*) do (echo ""%I"") >> "& sFTPTemp &"\ContenuDossier.txt"""
    Resultat = ws.run(command,0,True)
    End sub
    
    'c'est une fonction très partique qui sert à ajouter "les doubles quotes dans une variable" 
    Function qq(strIn) 
        qq = Chr(34) & strIn & Chr(34)
    End Function
    [HTA] File2FTPUpload avec une interface Graphique :


Discussions similaires

  1. Mettre dans l'ordre des fichiers par date de modification
    Par ftrap dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/07/2012, 00h15
  2. [XL-2003] Lire des fichiers par date de modification
    Par K2O2$ dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/05/2010, 19h11
  3. [JFileChooser] Trier les fichiers par date de modification
    Par stounouslous dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 10/05/2008, 12h47
  4. Réponses: 5
    Dernier message: 03/01/2008, 16h07
  5. Rechercher un fichier par date de modif
    Par cellendhyll dans le forum Général Python
    Réponses: 19
    Dernier message: 27/05/2007, 17h58

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