|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mars 2006 Messages : 6 ![]() |
bonjour,
Le but est de crypter un fichier avec l'utilitaire Gnupgp. Sous Dos, la commande est: C:\Program Files (x86)\Cryptophane\GnuPG\gpg.exe --recipient didiertest --output monfichier.txt.gpg --encrypt monfichier.txt Je me bat depuis plusieurs jours sur une ligne de code qui est la suivante: system ($command $mai" $out $File.gpg $in $File); avec $command = ""C:\\Program Files (x86)\\Cryptophane\\GnuPG\\gpg.exe"; et $mail = "didiertest"; et $out = "--output"; et $in = "--encrypt"; l'erreur est la suivante: C:\Users\didier\Desktop>perl rep.pl Scalar found where operator expected at rep.pl line 51, near "$mail $out" (Missing operator before $out?) Scalar found where operator expected at rep.pl line 51, near "$out $File" (Missing operator before $File?) syntax error at rep.pl line 51, near "$mail $out " Execution of rep.pl aborted due to compilation errors. Après plusieurs recherche, je me demande si les -- de --output et --encrypt ne posent pas problème. j'ai essayer d'echapper les -- par \-\-output et \-\-encrypt, mais j'ai la meme chose. Auriez-vous une piste ? merci didier |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Laurent R.Conseil - Consultant en systèmes d'information Inscription : mai 2012 Messages : 568 ![]() |
Bonjour,
deux questions: Code :
system ($command $mai" $out $File.gpg $in $File); Code :
$command = ""C:\\Program Files (x86)\\Cryptophane\\GnuPG\\gpg.exe"; De plus, utiliser des guillemets simples (') t'éviterait peut-être d'échapper les anti-slash. |
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() Laurent R.Conseil - Consultant en systèmes d'information Inscription : mai 2012 Messages : 568 ![]() |
Je n'ai pas Perl installé sous Windows, mais j'ai seulement l'exécutable perl.exe et le DLL correspondant dans un répertoire.
J'ai essayé ça à la ligne de commande, dans une fenêtre dos (cmd): Code :
perl -e "$i='dir'; $j='p*.*'; @a=command($i $j); print @a;"
J'ai ré-essayé toujours à la ligne de commande avec les backticks: Code :
perl -e "$i='dir'; $j='p*.*'; @a=`$i $j`; print @a;"
Donc cette seconde syntaxe semble fonctionner. En espérant que ça t'aide. |
|
|
00
|
|
|
#4 | ||
|
Invité de passage
![]() Inscription : mars 2006 Messages : 6 ![]() |
En effet, je n'ai pas vu ce mauvais copier-coller, désolé
en fait c'est: Code :
cordialement, |
||
|
|
00
|
|
|
#5 | ||
![]() ![]() ![]() Inscription : avril 2004 Messages : 13 512 ![]() |
Code :
__________________
|
||
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Laurent R.Conseil - Consultant en systèmes d'information Inscription : mai 2012 Messages : 568 ![]() |
Je pensais aussi qu'il serait probablement utile de concaténer la commande avant de l'afficher et de l'exécuter. En l'affichant, on s'assure que le résultat est bien ce que l'on veut.
@Didier: tu as vu la syntaxe que je propose avec les backticks? Elle semble marcher. |
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : mars 2006 Messages : 6 ![]() |
Bonjour,
merci d'avoir répondu rapidement. Lolo78, merci a toi. cependant ta solution ne fonctionne pas. Djibril, un GRAND merci. Ta solution fonctionne. j'ai modifié un peu le code car je me suis aperçu que les repertoires comprenant des espaces (exemple: c:\mon dossier a moi), le script ne fonctionnait pas. j'ai ajouté: $File = "\"$File\""; # cela afin de permettre les noms de repertoires avec espace. my $Fileout = "\"$File.gpg\""; # cela afin de permettre les noms de fichiers avec espace. pour info mon programme permet de crypter individuellement les fichiers de chaque repertoires. Le but étant de les sauvegarder par ftp. c'est plus facile a lire qu'un gros fichier zip crypté. On a le nom des fichiers au moins. Je mets mon programme en PJ. Je le sais, ce n'est peut-etre pas du grand perl mais bon, comme je le disait dans le forum général, je débute. Comme amélioration, il restera: - a mettre en parametre le nom du repertoire. - a gérer le fait que si le fichier original est plus recent que le fichier crypté, faire un nouveau cryptage. et encore plein d'autres choses que je ne vois pas maintenant. merci a vous. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com