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 :

[BATCH] Vérification de dossier


Sujet :

Windows

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 6
    Par défaut [BATCH] Vérification de dossier
    Bonjour.

    J'ai créé un petit batch qui vérifie l'existance de dossier et la présence d'un fichier spécifique dans ce dernier.

    Voici ce que j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if not exist %projet% md %projet%
    if not exist %hotfixs% md %hotfixs%
    if not exist %Winxp% md %Winxp%
    if exist "%winxp%\WIN51IC" goto XPHOME
    if exist "%winxp%\WIN51IC.SP1" goto XPHOMESP1
    if exist "%winxp%\WIN51IC.SP2" goto XPHOMESP2
    if exist "%winxp%\WIN51IP" goto XPPRO
    if exist "%winxp%\WIN51IP.SP1" goto XPPROSP1
    if exist "%winxp%\WIN51IP.SP2" goto XPPROSP2
    Là, pas de problème.

    mais comment puis-je faire pour vérifier dans le cas où %winxp% existe si ce dernier est vide ou s'il contient autre choses que les fichiers spécifiques (voir code ci-dessus)

    En bref, je voudrais que :

    Si le dossier WinXP existe mais qu'il est vide faire un GOTO VIDE

    Si le dossier WinXP existe mais qu'il ne contient pas les fichiers WIN51IC, WIN51IC.SP1, WIN51IC.SP2, WIN51IP, WIN51IP.SP1, et WIN51IP.SP2 faire un GOTO NON_VIDE

    Tout celà en tenant compte du code en haut


    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Pour savoir s'il existe d'autres fichier que ceux spécifiés :
    tout d'abord, tu vérifie tes fichiers particuliers et tu les comptes (tu crée une variable que tu incrémente à chaque fichier spécifié trouvé).
    Ensuite tu fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dir %winxp% | findstr /C:"%nbFichiers% fichier(s)"
    où nbFichiers est la variable qui compte les fichiers spécifiers. Ce code va chercher l'occurence "%nbFichiers% fichier(s)" dans ce que va renvoyer la commande "dir %winxp%"
    puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if %ERRORLEVEL%=0 goto PASDAUTREFICHIER
    cela teste le résultat de la commande précedente : %ERRORLEVEL% vaut 0 si la chaine a été trouvée par la commande findstr, et 1 dans le cas contraire.
    Si la chaine "%nbFichiers% fichier(s)" est trouvé cela veut donc dire qu'il y a le même nombre de fichiers dans le repertoire que de fichiers spécifiés trouvés, donc qu'il n'y en a pas d'autre.
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 6
    Par défaut
    Citation Envoyé par le y@m's
    Pour savoir s'il existe d'autres fichier que ceux spécifiés :
    tout d'abord, tu vérifie tes fichiers particuliers et tu les comptes (tu crée une variable que tu incrémente à chaque fichier spécifié trouvé).
    Comment écris-tu cette variable ?

  4. #4
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Déclaration :Incrémentation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set /A nbFichiers=%nbFichiers% + 1
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  5. #5
    Membre à l'essai
    Inscrit en
    Juillet 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 6
    Par défaut
    Fonctionne pas

    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
    set nbFichiers=0
    set /A nbFichiers=%nbFichiers% + 1
    
    if not exist %projet% md %projet%
    if not exist %hotfixs% md %hotfixs%
    if not exist %Winxp% md %Winxp%
    
    dir %winxp% | findstr /C:"%nbFichiers% fichier(s)"
    if ERRORLEVEL=0 goto PASDAUTREFICHIER
    
    if exist "%winxp%\WIN51IC" goto XPHOME
    if exist "%winxp%\WIN51IC.SP1" goto XPHOMESP1
    if exist "%winxp%\WIN51IC.SP2" goto XPHOMESP2
    if exist "%winxp%\WIN51IP" goto XPPRO
    if exist "%winxp%\WIN51IP.SP1" goto XPPROSP1
    if exist "%winxp%\WIN51IP.SP2" goto XPPROSP2
    goto COPY_CD
    
    :PASDAUTREFICHIER
    echo.
    echo le dossier est vide
    sleep 2
    pause
    goto COPY_CD

    Avec %ERRORLEVEL% la fenêtre dos se ferme aussi vite.

    J'ai mis ERRORLEVEL sans les %%, et là :

    Si le dossier WinXP est vide, il affiche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    0 fichier(s)   0 octets
    
    le dossier est vide
    Appuyer sur une toouche pour continuer...
    Si WinXP contient 1 fichiers :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    1 fichier(s)   10 octets
    
    le dossier est vide
    Appuyer sur une toouche pour continuer...

    Si WinXP contient plus d'un seul fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    le dossier est vide
    Appuyer sur une toouche pour continuer...

  6. #6
    Inactif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 054
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 054
    Par défaut
    Essaye ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    set nbFichiers=0 
    set /A nbFichiers=%nbFichiers% + 1 
    
    dir %winxp% | findstr /C:"%nbFichiers% fichier(s)" 
    
    if %ERRORLEVEL%==0 goto PASDAUTREFICHIER 
     
    Goto Fin 
     
    :PASDAUTREFICHIER 
    echo PASDAUTREFICHIER 
    
    :Fin
    Dans la ligne suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dir %winxp% | findstr /C:"%nbFichiers% fichier(s)"
    Remplace ceci:
    Par les noms des fichiers.

    Tien moi u courant.

  7. #7
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Tu dois incrementer nbFichier à chaque fois qu'un des fichiers spécifiés est trouvé, dans ton code nbFichier vaut toujours 1.
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  8. #8
    Membre à l'essai
    Inscrit en
    Juillet 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 6
    Par défaut
    la variable %ERROLEVEL% ne veut pas fonctionner.

    La fenêtre DOS se ferme aussis vite qu'elle est ouverte

  9. #9
    Membre à l'essai
    Inscrit en
    Juillet 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 6
    Par défaut
    Citation Envoyé par le y@m's
    Tu dois incrementer nbFichier à chaque fois qu'un des fichiers spécifiés est trouvé, dans ton code nbFichier vaut toujours 1.
    Je comprend pas

  10. #10
    Inactif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 054
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 054
    Par défaut
    C'est normale il faut mettre deux = :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if %ERRORLEVEL%==0 goto PASDAUTREFICHIER

  11. #11
    Membre à l'essai
    Inscrit en
    Juillet 2005
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 6
    Par défaut
    Ok la commande %ERRORLEVEL% est acceptée, mais j'ai toujour pas le résultat souhaité

    goto PASDAUTREFICHIER n'est pas pris en compte que le dossier WinXp soi vide ou pas.

    Le batch passe direct à

  12. #12
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Citation Envoyé par cyber_mdee
    Citation Envoyé par le y@m's
    Tu dois incrementer nbFichier à chaque fois qu'un des fichiers spécifiés est trouvé, dans ton code nbFichier vaut toujours 1.

    Je comprend pas
    Tu veus savoir s'il y a d'autres fichiers dans le repertoire que ceux spécifiés.

    Le principe est que si le nombre de fichiers contenus dans le repertoire est plus grand que le nombre de fichiers spécifiés alors il y a d'autres fichiers dans ce repertoire.

    Donc la premiere etape est de compter le nombre de fichiers spécifiés qui se trouvent dans le repertoire.
    Lorsque tu teste l'existence de tes fichiers tu doit incrémenter nbFichier pour chaque fichier existant.
    Au final, nbFichier doit être égal au nombre de fichiers dont l'existence a été vérifié.
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  13. #13
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Citation Envoyé par Furius
    C'est normale il faut mettre deux = :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if %ERRORLEVEL%==0 goto PASDAUTREFICHIER
    désole j'ai écrit trop vite
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

Discussions similaires

  1. Vérification de dossiers, si non présents création avec boucle
    Par PAB/31/SAB dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 29/04/2015, 11h20
  2. [BATCH] Transformer un dossier en un .jar
    Par getrude dans le forum Général Java
    Réponses: 16
    Dernier message: 01/05/2012, 12h22
  3. [Batch] détection sous dossier
    Par Vagabonerie dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 21/01/2011, 12h06
  4. Probleme batch copie de dossier
    Par eric0279 dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 08/12/2007, 03h44
  5. Verifier qu'un dossier existe (batch)
    Par kakou dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 08/01/2003, 13h46

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