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 :

Utiliser le navigateur de dossiers pour différentes tâches [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2015
    Messages : 126
    Par défaut Utiliser le navigateur de dossiers pour différentes tâches
    Bonjour les développeurs.

    J'ai 2 scripts.

    - Le premier génère la liste du contenu d'un dossier. Mais pour cela, il faut que ce script soit dans le dossier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @echo off
    for %%* in (.) do set CurrDirName=%%~nx*
    DIR %1 /-p /s /o:gn > "%CurrDirName%_Dir.txt"
    - Le second est un navigateur de dossiers. Lorsqu'on le lance, il affiche la fenêtre Rechercher un dossier.

    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
    @if (@CodeSection == @Batch) @then
    
    @echo off
    setlocal
    
    rem Place your original Batch code here
    
    rem Activate the pop-up GUI and get the folder
    for /F "delims=" %%a in ('CScript //nologo //E:JScript "%~F0"') do (
       set selectedFolder=%%a
    )
    
    rem Process the selected folder in any way you wish
    echo Selected folder: "%selectedFolder%"
    goto :EOF
    
    End of Batch section
    
    
    @end
    
    
    // JScript section
    
    // Creates a dialog box that enables the user to select a folder and display it.
    var title = "Select a folder", rootFolder = 12;
    var shl = new ActiveXObject("Shell.Application");
    var folder = shl.BrowseForFolder(0, title, 0, rootFolder);
    WScript.Stdout.WriteLine(folder ? folder.self.path : "");
    J'ai copié le 1er script dans le second comme cela est mentionné rem Place your original Batch code here, mais il n'y a pas de liste du contenu du dossier.

    Quelle est la solution ?

    Merci.

  2. #2
    Membre Expert
    Femme Profil pro
    ..
    Inscrit en
    Décembre 2019
    Messages
    676
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 95
    Localisation : Autre

    Informations professionnelles :
    Activité : ..

    Informations forums :
    Inscription : Décembre 2019
    Messages : 676
    Par défaut
    Salut tease,

    Le code jscript te permet vraisemblablement de sélectionner un dossier puis enregistre son chemin dans la variable "selectedFolder". Si tu veux faire quelque chose avec ce dossier alors le code correspondant doit être placé entre les lignes 14 et 15.

  3. #3
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2015
    Messages : 126
    Par défaut
    Bonjour kaitlyn

    Effectivement, j'ai suivi ton conseil et ça marche. Je peux maintenant lister le contenu d'un dossier.

    Code Batch : 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
    @if (@CodeSection == @Batch) @then
    
    @echo off
    chcp 1252 > nul
    setlocal
    
    rem Activate the pop-up GUI and get the folder
    for /F "delims=" %%a in ('CScript //nologo //E:JScript "%~F0"') do (
       set selectedFolder=%%a
    )
    
    rem Process the selected folder in any way you wish
    echo Selected folder: "%selectedFolder%"
    
    for %%* in ("%selectedFolder%") do set CurrDirName=%%~nx*
    DIR "%selectedFolder%" /-p /s /o:gn > "%CurrDirName%_Dir.txt"
    
    for %%* in ("%selectedFolder%") do set CurrDirName=%%~nx*
    TREE "%selectedFolder%" /F /A > "%CurrDirName%_Tree.txt"
    
    goto :EOF
    
    End of Batch section
    
    @end
    
    // JScript section
    
    // Creates a dialog box that enables the user to select a folder and display it.
    var title = "Select a folder", rootFolder = 17;
    var shl = new ActiveXObject("Shell.Application");
    var folder = shl.BrowseForFolder(0, title, 0, rootFolder);
    WScript.Stdout.WriteLine(folder ? folder.self.path : "");

    Merci infiniment pour ton aide précieuse.

    Autre chose.

    Comment adapter le même script mais pour renommer des fichiers en masse ?

    Voici le script dont je me sers mais je dois le copier dans le dossier. Particularité: il ne renomme pas le fichier .bat

    Code Batch : 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
    @echo off
    title Renommer des fichiers en masse
    setlocal enableDelayedExpansion
    echo.
    set /p file=Entrez le nom des fichiers … renommer: 
    echo.
    set /p num= Commencez la num‚rotation … partir de: 
    set /a num=%num%-1
    for /f "tokens=* delims=*" %%I in ('DIR /B') do (
                    IF NOT [%%~xI] EQU [.bat] (
    		IF NOT %%I==%~nx0 (
         set /a num+=1
         echo %%I renomm‚ en %file% !num!%%~xI
         ren "%%I" "%file% !num!%%~xI"
      )
     )
    )
    echo.
    pause


    Merci

  4. #4
    Membre Expert
    Femme Profil pro
    ..
    Inscrit en
    Décembre 2019
    Messages
    676
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 95
    Localisation : Autre

    Informations professionnelles :
    Activité : ..

    Informations forums :
    Inscription : Décembre 2019
    Messages : 676
    Par défaut
    Tu peux copier ce que tu veux juste après avoir positionné le répertoire sélectionné comme répertoire courant avec la commande cd par exemple.

    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cd /d "%selectedFolder%"
    rem ton code

    Si tu veux, dans ton code, tu peux supprimer la ligne 8 si tu déplaces la 12 après la 14. De même pour les lignes 10, 11, 15 et 16 si tu remplaces ton dir /b par dir /b /a-d ^| findstr /vi "\.bat$"

  5. #5
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2015
    Messages : 126
    Par défaut
    Ça marche merveilleusement bien.

    infiniment kaitlyn pour ton aide précieuse et tes explications.

    Au revoir. Bonne santé et à une prochaine fois peut-être.

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

Discussions similaires

  1. [PHP 5.0] Utiliser le même formulaire .html pour différentes données
    Par proximacent dans le forum Langage
    Réponses: 7
    Dernier message: 16/11/2011, 12h17
  2. Réponses: 3
    Dernier message: 30/06/2008, 22h18
  3. Réponses: 2
    Dernier message: 29/08/2007, 13h03
  4. Utiliser le même code pour différents variables
    Par vladvad dans le forum Windows Forms
    Réponses: 16
    Dernier message: 09/06/2007, 18h10
  5. Réponses: 4
    Dernier message: 07/03/2006, 15h54

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