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

Windows Discussion :

boucle en batch


Sujet :

Windows

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 17
    Points : 7
    Points
    7
    Par défaut boucle en batch
    Bonjour,

    J'ai un petit problème avec un script en batch, je veux parcourir un liste de fichier d'un dossier pour les déplacer, supprimer ou laisser suivant la date de dernière modification. mais j'ai un problème dans ma boucle, je pense que c'est à cause des "if". Voici le code

    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
    @echo off
    title gestion des logs
    set cheminLogs=c:\essai
    set dateSys=%DATE%
    cd %cheminLogs%
    if EXIST lastWeek goto move
    mkdir lastWeek
    :move
    echo %dateSys%
    for /f "tokens=3 delims=/ " %%b in ('date/t') do set mois=%%b
    echo %mois%
    for /f "tokens=1 delims=/ " %%b in ('date/t') do set libJour=%%b
    echo %libjour%
    for /f "tokens=2 delims=/ " %%b in ('date/t') do set nbJour=%%b
    echo %nbJour%
    
    for %%a in (*.xml) do (
    
    	set nom=%%a
    
    	for /f "skip=4 tokens=1" %%a in ('dir "%nom%" /tw /-c /a:-d-s-h^|find /v "(s)"') do set dateModif=%%a
    
    
    	for /f "tokens=1 delims=/ " %%b in ('echo %dateModif%') do set jourModif=%%b
    	for /f "tokens=2 delims=/ " %%b in ('echo %dateModif%') do set moisModif=%%b
    
    	if %moisModif% equ %mois% do goto :garder
    	del %nom%
    
    	:garder
    	echo c'est de ce moi ci
    	pause
    
    	set /A difference=%nbJour%-%jourModif%
    	echo %difference%
    	pause
    
    	if %difference% lss 8 do goto :laisser
    	echo on déplace le log
    	copy %nom% c:\essai\lastWeek
    	pause
    
    	:laisser
    	echo ce log n'est pas deplace
    	pause
    )
    merci

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    En fait je viens de résoudre une partie de mon problème:
    en fait dans mon for j'appelle une balise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for %%a in (*.xml) do (
    	set nom=%%a
    	call :traitement
    )
    cependant un problème subsiste : comment arrêter la boucle?

    merci

  3. #3
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Citation Envoyé par jeanrob
    En fait je viens de résoudre une partie de mon problème:
    en fait dans mon for j'appelle une balise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for %%a in (*.xml) do (
    	set nom=%%a
    	call :traitement
    )
    cependant un problème subsiste : comment arrêter la boucle?

    merci
    La boucle est sensé s'arréter dé qu'elle aura traiter tou les fichier .xml

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    en fait cé bon j'ai ajouté /r après le for et ca marche.

    merci quand même

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

Discussions similaires

  1. boucle for batch dos
    Par sacan dans le forum Windows
    Réponses: 1
    Dernier message: 27/09/2011, 16h23
  2. affecter variable dans boucle FOR batch
    Par efferalgan dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 25/10/2007, 14h25
  3. [BATCH] Aide sur boucle for et test
    Par t_om84 dans le forum Windows
    Réponses: 3
    Dernier message: 07/06/2006, 10h12
  4. [batch] incrémentation dans une boucle for
    Par bart64 dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 08/09/2004, 20h05
  5. [Debutant] Batch et Boucle for
    Par ludovic.fernandez dans le forum Scripts/Batch
    Réponses: 8
    Dernier message: 06/05/2004, 19h21

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