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 :

Fichier bat et chemins trop long


Sujet :

Scripts/Batch

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 81
    Par défaut Fichier bat et chemins trop long
    bonjour,

    je ne sais pas si je suis au bon endroit pour poster ça, mais voilà mon ptit soucis :
    j'ai un ptit programme (c#) qui lance un fichier bat avec 3 paramètres, dont 2 qui sont des chemins de répertoire. Or il se trouve que quand ces répertoires ont des espaces, il me tronque mon chemin (sans doute qu'a chaque fois qu'il y a un espace, il prend ça comme des arguments différents).
    évidemment j'ai fais le test avec des chemins longs mais avec des dossiers qui sont sans espaces, et ça marche.

    une idée ? ou bien j'oublie mes répertoires avec espaces ?

    merci d'avance !

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    948
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 948
    Par défaut
    mets des guillemets autour de tes chemins :
    "c:\mon chemin avec espace\"
    c'est à dire que si tu déclares ta chaine en c#, je pense que ca ressemblera a ca :
    myString = \"c:\mon chemin avec espace\\"
    ( il faut chercher comment est codé ton caractère guillemet, je crois que c'est \" mais je suis pas sur).

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 81
    Par défaut
    je vois ce que tu veux dire mais bon, c'est vrai que dans ma chaine de caractères il n'y pas les guillemets, mais dans mon fichier bat j'appelle les arguments comme ça :

    "%1%2"


    1 : le chemin du repertoire genre : c:\tototo\tototo to ot ot\
    2 : un fichier : toto.txt

    et donc j'ai mis les guillemets dans le bat

    ça ne suffit pas ?

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    948
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 948
    Par défaut
    Salut,

    non ca ne suffit pas a mon avis. En general quand tu lances un bat tu crees un objet shell ou quelque chose du genre et tu écris ta commande :

    lanceleshell ("machin.bat -argument")

    si tu as un espace dans ton argument, c'est mort. il faut que tu ecrives :
    lanceleshell ("machin.bat -"argument" ")

    Et ca ne dépend absolument pas du contenu de ton .bat

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 81
    Par défaut
    ok c'est bon !

    j'ai finalement supprimer les guillemets dans mon .bat, et j'ai rajouter les guillemets autours des répertoires lors du passage d'arguments dans ma fonction qui lance le bat.

    donc pour résumer :

    AVANT (marche pas)

    - variable de repertoire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    path = @"c:\toto to\totooooooo\";
    - appel dans la fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Process.Start(@"C:\monbat.bat", mail + path);
    - fichier bat

    APRES (marche !)

    - variable de repertoire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    path = @"c:\toto to\totooooooo\"; // toujours pareil
    - appel dans la fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Process.Start(@"C:\monbat.bat", mail + "\"" + path + "\""); // ajout des guillemet (le caractère guillemet est ajouter en mettant un \ avant)
    - fichier bat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    monexe.exe %2%1 // on supprime les guillemets
    merci de ton aide

    ++

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

Discussions similaires

  1. [important]supprimer un Chemin trop long
    Par sekaijin dans le forum Windows 7
    Réponses: 6
    Dernier message: 26/04/2018, 15h05
  2. Problème de clean avec des chemins trop longs des plugins
    Par obrun dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 23/03/2010, 13h26
  3. sauvegarde .bat et chemin de fichiers trés longs
    Par petitours dans le forum Windows XP
    Réponses: 2
    Dernier message: 25/05/2008, 19h18
  4. [fichier]Chemin d'accès trop long
    Par elflamby dans le forum VB.NET
    Réponses: 4
    Dernier message: 17/07/2007, 14h44
  5. getOutputStream() : nom de fichier trop long
    Par joseph_p dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 29/06/2006, 11h55

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