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 :

Basename Windows avec des espaces [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Par défaut Basename Windows avec des espaces
    Bonjour a tous
    [Mode Newbie Batch Windows Activé ]

    J'ai besoin d'extraire le basename d'un fichier

    Au vu des posts j'ai essayé ceci (mais ca fonctionne que si il n'y a pas d'espace ni dans le chemin , ni dans le nom du fichier et c'est pas mon cas !! )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    set REPFIC_ORIG="C:\Program files\Truc Much\Ceci est mon fichier.dat"
    For /F %%I In ("%REPFIC_ORIG%") Do Set FILE_TEMPO=%%~nI
    echo FILE_TEMPO=%FILE_TEMPO%
    pause
    et ca me renvoi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me renvoi FILE_TEMPO=Program
    Comment avoir "Ceci est mon fichier.dat" dans %FILE_TEMPO%

    Merci de votre aide

  2. #2
    Membre Expert Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Par défaut
    Bonjour,

    Il faut ajouter un "delims=".

    Le FOR /F utilise par défaut espace et tabulation comme séparateur. En ajoutant la mention ci-dessus, tu forces à aucun délimiteur et donc le for va ici prendre ta chaine de caractère en entier.

    Au final :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    set REPFIC_ORIG="D:\Documents and Settings\seMathieu\Mes documents\[ExosProg]\TestBatch\azer tyui.txt"
    For /F "delims=" %%I In ("%REPFIC_ORIG%") Do Set FILE_TEMPO=%%~nI
    echo FILE_TEMPO=%FILE_TEMPO%
    pause

  3. #3
    Membre chevronné
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Par défaut

    Extra merci à vous Drizzt [Drone38]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    set REPFIC_ORIG="D:\Documents and Settings\Test Ici et la \Mes   documents\[Exos Prog]\TestBatch\azer tyui.txt"
    For /F "delims=" %%I In ("%REPFIC_ORIG%") Do Set FILE_TEMPO=%%~nI%%~xI
    echo FILE_TEMPO=%FILE_TEMPO%
    pause
    J'ai aussi rajouté : %%~xI pour l'extension

  4. #4
    Membre Expert Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Par défaut
    Tu peux écrire directement %%~nxI pour avoir l'extension.

    Bonne continuation.

  5. #5
    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,

    Citation Envoyé par Drizzt [Drone38] Voir le message
    Bonjour,

    Il faut ajouter un "delims=".

    Le FOR /F utilise par défaut espace et tabulation comme séparateur. En ajoutant la mention ci-dessus, tu forces à aucun délimiteur et donc le for va ici prendre ta chaine de caractère en entier.

    Toutefois, un token est quand même plus logique.

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

Discussions similaires

  1. nom de table et de champs avec des espaces
    Par grinder59 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 16/05/2006, 17h30
  2. Batch : copy d'un répertoire avec des espaces
    Par krfa1 dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 26/10/2005, 12h47
  3. [VB.NET] Compléter une chaine avec des espaces
    Par Lois dans le forum Windows Forms
    Réponses: 4
    Dernier message: 24/03/2005, 09h09
  4. Réponses: 2
    Dernier message: 08/07/2004, 01h04
  5. Réponses: 2
    Dernier message: 06/12/2002, 07h50

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