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 :

lister le contenu d'un répertoire et protéger avec des double quotes [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de lavazavio
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 673
    Par défaut lister le contenu d'un répertoire et protéger avec des double quotes
    Bonjour,

    Je suis en train de faire un script batch pour le transfert des fichiers d'un dossier précis par ftp.

    J'arrive bien à récupérer les chemins complets dans fichiers dans un fichier texte mais le transfert ftp plante à cause des espaces dans les noms.

    Il faudrait que je protège les chemins absolus par des double quotes dans mon fichier texte, mais je n'y arrive pas.

    Comment faire ?

    Voici le bout de code qui récupère les chemins absolus dans le fichier texte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for %%a in ("%directory%\*.*") do (
        echo put %%a >> send.ftp
    )
    Rédacteur et Modérateur rubriques Linux et Virtualisation
    Mes Articles
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux
    N'oubliez pas de consulter les FAQ virtualisation et les cours et tutoriels Virtualisation
    Man pages en français

  2. #2
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut
    Salut,

    c'est peut-être ça que tu cherches :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo put "%%a" >> send.ftp

  3. #3
    Rédacteur
    Avatar de lavazavio
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 673
    Par défaut
    Merci pour ta réponse.

    J'avais essayé ca, mais en fait c'était plus compliqué que ca parce que les chemins que je récupérais comportaient des espaces et ca faisait planter les chemins dans mon fichier send.ftp.

    j'ai cherché pendant 2 jours et le seul moyen que j'ai trouvé est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    dir /b /s %directory% > send.txt
    
    for /f "delims=1" %%i in ('type send.txt') do (
        echo put "%%i" >> send.ftp
    )
    Rédacteur et Modérateur rubriques Linux et Virtualisation
    Mes Articles
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux
    N'oubliez pas de consulter les FAQ virtualisation et les cours et tutoriels Virtualisation
    Man pages en français

  4. #4
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut
    Dans ton premier poste, tu parles de transférer "des fichiers d'un dossier", donc tu n'as pas besoin du paramètre "/s" de la commande "dir". Pour plus d'infos, consulte l'aide de cette commande.

    Ma réponse était en complément de ton premier script.

    En somme, les codes suivants produisent logiquement le même résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for %%i in ("%directory%\*") do echo put "%%i" >> send.ftp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f "tokens=*" %%i in (' dir /b "%directrory%\*" ') do echo put "%directrory%\%%i" >> send.ftp
    ce qui pour moi correspond à ta demande, du moins à ce que tu laisses comprendre.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 03/01/2008, 02h53
  2. Lister le contenu d'un répertoire présent dans le classpath
    Par kaptainflam dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 28/08/2007, 16h08
  3. Réponses: 5
    Dernier message: 30/08/2006, 18h23
  4. Lister le contenu d'un répertoire
    Par rob_57 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 09/10/2005, 19h16
  5. Lister le contenu d'un répertoire distant
    Par dody dans le forum Langage
    Réponses: 3
    Dernier message: 06/10/2005, 17h23

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