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

Langage Perl Discussion :

Protéger les espaces dans les chemins


Sujet :

Langage Perl

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 49
    Points : 26
    Points
    26
    Par défaut Protéger les espaces dans les chemins
    Bonjour

    je ne réussis pas à passer une commande avec son chemin à cause de l'espace qu'il y a entre Program et Files (C:\Program Files\ ...).
    J'ai essayé avec des guillemets, avec des simples quotes, mais perl n'en veut pas.
    Pourriez-vous m'aider svp ?

    Exemple de script:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    my $command_dir="C:/Program Files/7-Zip";
    my $command="$command_dir/7z.exe a -tzip $file.zip file";
    system("$command");
    Merci d'avance
    Bruno

  2. #2
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mars 2007
    Messages : 244
    Points : 99
    Points
    99
    Par défaut
    salut,

    Je peux me tromper mais je ne pense pas que ca vienne de l'espace entre les deux, j'ai essayé ton code en remplacent l'executable a lancer par un logiciel installé sur mon pc et ca fonctionne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    my $command = "C:/Program Files/Cabos/Cabos.exe";
    system("$command");
    J'utilise activeperl 5.8.8

  3. #3
    Nouveau membre du Club
    Inscrit en
    Août 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 49
    Points : 26
    Points
    26
    Par défaut
    Voici le script en entire ainsi qu'un extrait du résultat de son execution:
    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
    #!C:\perl\bin\perl -w
    use strict;
    print "\n************ $date: DEBUT DU SCRIPT $0  ************\n\n";
    my $fromdir="D:/Transfert CD/GRH/Sageph/helios";
    my $command_dir="C:/Program Files/7-Zip";
    chdir $fromdir;
    my @liste_files = glob("*.XML");
    warn "\n************ $date: AUCUN FICHIER A TRAITER **********\n"
       unless @liste_files;
    foreach my $file ( @liste_files )
    {
       print "Le fichier $file est present dans $fromdir.\n";
       my $command="$command_dir/7z.exe a -tzip $file.zip $file";
       system("$command");
       print "   => Le fichier $file a ete zippe en $file.zip\n";
    }  
    print "\n************ $date: FIN NORMALE DU SCRIPT $0  ************\n";
    Et le résultat:
    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
    D:\Transfert CD\GRH\Sageph\helios>c:\bat\commun\helios\ph7_helios_7zip.pl
     
    ************ Fri Nov 16 14:14:07 2007: DEBUT DU SCRIPT c:\bat\commun\helios\Ph7_
    Helios_7zip.pl  ************
     
    Le fichier PAIEAS_112007.XML est present dans D:/Transfert CD/GRH/Sageph/helios.
     
    'C:/Program' n'est pas reconnu en tant que commande interne
    ou externe, un programme exécutable ou un fichier de commandes.
       => Le fichier PAIEAS_112007.XML a ete zippe en PAIEAS_112007.XML.zip
    Le fichier PAIEAV_112007.XML est present dans D:/Transfert CD/GRH/Sageph/helios.
     
    'C:/Program' n'est pas reconnu en tant que commande interne
    ou externe, un programme exécutable ou un fichier de commandes.
       => Le fichier PAIEAV_112007.XML a ete zippe en PAIEAV_112007.XML.zip
    Le fichier PAIEAY_112007.XML est present dans D:/Transfert CD/GRH/Sageph/helios.
     
    'C:/Program' n'est pas reconnu en tant que commande interne
    ou externe, un programme exécutable ou un fichier de commandes.
    ....
    Apparemment, c'est vraiment l'espace qui le gêne ...

  4. #4
    Nouveau membre du Club
    Inscrit en
    Août 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 49
    Points : 26
    Points
    26
    Par défaut
    Finalement, j'ai résolu mon problème en ajoutant le chemin de ma commande au PATH en début de script avec le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ENV{PATH}="C:/Program Files/7-Zip;".$ENV{PATH};
    Merci de votre aide.
    Bruno

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 22/04/2009, 16h43
  2. Supprimé les espaces et les '\n' dans une chaine
    Par EricStib dans le forum Général Python
    Réponses: 6
    Dernier message: 04/01/2009, 18h02
  3. Gérer les espaces dans les liens
    Par piotrr dans le forum Langage
    Réponses: 5
    Dernier message: 07/02/2008, 21h44
  4. Réponses: 1
    Dernier message: 12/12/2006, 18h31
  5. Prendre en compte les espaces dans les filtres
    Par Ekinoks dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 03/11/2006, 02h57

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