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 :

Chosir un dossier et varibles en batch [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Septembre 2021
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2021
    Messages : 13
    Par défaut Chosir un dossier et varibles en batch
    Bonjour,

    je dois développer un script en batch pour effectuer des sauvegarde grâce à robocopy, et les sauvegarde ce font sur des disques dur amovibles, je souhaiterais donc pouvoir faire en sorte que lors de l’exécution du script on puisse choisir la source et la destination de la sauvegarde.
    Pour le moment mon script ressemble à ca :

    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    @echo off
    setlocal
     
    set "psCommand="(new-object -COM 'Shell.Application')^
    .BrowseForFolder(0,'Please choose a folder.',0,0).self.path""
     
    for /f "usebackq delims=" %%I in (`powershell %psCommand%`) do set "folder=%%I"
     
    setlocal enabledelayedexpansion
    echo You chose !folder!
    endlocal
     
    robocopy C:\Users\a.duplessis\Desktop\test !folder! /MIR /W:0 /R:1 /REG /XJ >> C:\Users\a.duplessis\Desktop\externalbackup.log

    Les lignes 1-11 je les ai trouvées sur internet et permettent d’ouvrir un fenêtre de sélection de dossier mais cette partie se répète en boucle et le robocopy ne s’exécute pas.
    Quelqu'un aurait donc une solution pour que le choix soit dans une variable et que je puisse utiliser cette variable par la suite dans le robocopy.
    Merci d'avance, et bonne journée

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    bonjour,

    La partie en italique fonctionne correctement chez moi, malgré quelques erreurs affichées qui semble "normal"

    Demande la suppression forcé des " en utilisant le ~
    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    ...set "folder=%%~I"

    Tu devrais prendre l’habitude d'encrader tes chemins de "
    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    robocopy "C:\Users\a.duplessis\Desktop\test !folder!" /MIR /W:0 /R:1 /REG /XJ >> "C:\Users\a.duplessis\Desktop\externalbackup.log"

  3. #3
    Membre averti
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Septembre 2021
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2021
    Messages : 13
    Par défaut
    Bonjour,

    Merci de votre réponse.
    A présent mon code ressembler à ça :

    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    @echo off
    setlocal
     
    set "psCommand="(new-object -COM 'Shell.Application')^
    .BrowseForFolder(0,'Please choose a folder.',0,0).self.path""
     
    for /f "usebackq delims=" %%I in (`powershell %psCommand%`) do set "folder=%%~I"
     
    setlocal enabledelayedexpansion
    echo You chose !folder!
    endlocal
     
    robocopy "C:\Users\a.duplessis\Desktop\test" !folder! /MIR /W:0 /R:1 /REG /XJ >> "C:\Users\a.duplessis\Desktop\externalbackup.log"

    Cependant, quand j’exécute le .bat il tourne en boucle et la fenêtre de choix de dossier ré-apparait indéfiniment quand je choisi un dossier et la commande de robocopy ne s'exécute pas, pouvez-vous m'aider ?

    Cordialement,
    Duplessis Axel

  4. #4
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2016
    Messages : 18
    Par défaut
    Dans ton code, il y a un léger problème de setlocal, ceci est + correcte :

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    @echo off
    setlocal enabledelayedexpansion
     
    set "psCommand="(new-object -COM 'Shell.Application')^
    .BrowseForFolder(0,'Please choose a folder.',0,0).self.path""
     
    for /f "usebackq delims=" %%I in (`powershell %psCommand%`) do set "folder=%%~I"
     
     
    echo You chose !folder!
     
     
    robocopy "C:\Users\a.duplessis\Desktop\test" "!folder!" /MIR /W:0 /R:1 /REG /XJ >> "C:\Users\a.duplessis\Desktop\externalbackup.log"

  5. #5
    Membre averti
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Septembre 2021
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2021
    Messages : 13
    Par défaut
    Merci beaucoup, mon code fonctionne à présent, il fallait aussi que je le lance en tant que administrateur.
    Je laisse mon code ici si jamais d'autre en ont besoin:

    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     @echo off
    setlocal enabledelayedexpansion
     
    set "psCommand="(new-object -COM 'Shell.Application')^
    .BrowseForFolder(0,'Please choose a folder.',0,0).self.path""
     
    for /f "usebackq delims=" %%I in (`powershell %psCommand%`) do set "folder=%%~I"
     
     
    echo You chose !folder!
     
     
    robocopy "dossier1" "!folder!" /MIR /W:0 /R:1 /REG /XJ >> "fichierLog"

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

Discussions similaires

  1. [Batch] Comment changer l'icône d'un dossier avec une commande batch ?
    Par Nemes1s dans le forum Scripts/Batch
    Réponses: 10
    Dernier message: 28/09/2018, 12h48
  2. [Batch] Supprimer un dossier utilisateur par commande batch?
    Par burki dans le forum Scripts/Batch
    Réponses: 7
    Dernier message: 25/03/2015, 11h48
  3. Réponses: 10
    Dernier message: 01/09/2005, 20h37
  4. [batch] problème de suppression de dossier
    Par july dans le forum Windows
    Réponses: 2
    Dernier message: 22/07/2005, 11h39
  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