[R] Comspec, La ligne entrée est trop longue

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
xeno
Niveau 4
Niveau 4
Messages : 79
Enregistré le : sam. 23 mai 2009 02:43
Status : Hors ligne

[R] Comspec, La ligne entrée est trop longue

#1

Message par xeno »

quand je lance cette commande,

Code : Tout sélectionner

Run(@ComSpec & ' /k ' &'"'&'"C:\Program Files (x86)\OpenVPN\bin\openvpn.exe"' &' --log test.log' &' --client' &' --dev tun' &' --remote 188.16.238.25' &' --port 1194' &' --resolv-retry infinite' &' --nobind' &' --persist-key' &' --persist-tun' &' --ca ca.crt' &' --key xeno.key' &' --cert xeno.crt' &' --redirect-gateway' &' --dhcp-option DNS 200.20.41.205' &' --dhcp-option DNS 200.47.22.122' &' --comp-lzo' &' --tun-mtu 1500' &' --fragment max' &' --mssfix' &' --verb 5', "", @SW_SHOW)
j'ai une erreur "la ligne entrée est trop longue" et pourtant j'ai essayé de le morcelé..

cette commande fonctionne très bien dans un batch
"C:\Program Files (x86)\OpenVPN\bin\openvpn.exe" --log test.log --client --dev tun --remote 188.16.238.25 --port 1194 --resolv-retry infinite --nobind --persist-key --persist-tun --ca ca.crt --key xeno.key --cert xeno.crt --redirect-gateway --dhcp-option DNS 200.20.41.205 --dhcp-option DNS 200.47.22.122 --comp-lzo --tun-mtu 1500 --fragment max --mssfix --verb 5
je pense que j'ai atteins une des limites d'autoit :(

utilisé un fichier batch externe ne me plais pas, je voulais tout intégre dans un seul exécutable, quelqu'un aurait il une idée ou une astuce :?:
Modifié en dernier par xeno le lun. 30 nov. 2009 21:28, modifié 1 fois.
Avatar du membre
ayuckers
Niveau 4
Niveau 4
Messages : 77
Enregistré le : mer. 28 oct. 2009 14:15
Localisation : Drome
Status : Hors ligne

Re: [..] Comspec, La ligne entrée est trop longue

#2

Message par ayuckers »

Bonsoir,

Je tient a preciser que je n'est pas encore eut l'ocation d'experimenter ce genre de methode :)
Mais voici je qui me vient a l'espris :

Pourquoi ne pas utiliser ton fichier batch et masquer l'execution avec @SW_HIDE ?
Et pour l'integration de ton batch a l'exe d'autoit tu pourrais experimenter ce tuto réaliser par Tlem :
http://www.autoitscript.fr/forum/viewto ... pper#p3093
certe c'est peut être un peu complexe mais y'a de l'idée ;)

Ou bien pour faire plus simple tu pourrais tout simplement utiliser un " FileInstall " et lancer ton fichier batch...

Ou bien encore ton script pourrais crée directement le fichier batch que tu execute ensuite en mode caché et enfin tu suprime ton fichier batch

La je suis a cour d'idée mais je peut en trouvé d'autre si tu veut :lol:
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11818
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Comspec, La ligne entrée est trop longue

#3

Message par Tlem »

Est-ce que ceci ne fonctionnerait pas mieux :

Code : Tout sélectionner

$OpenDir = 'C:\Program Files (x86)\OpenVPN\bin\'
Run(@ComSpec & ' /k "' & $OpenDir & 'openvpn.exe" --log test.log --client --dev tun --remote 188.16.238.25 --port 1194 --resolv-retry infinite --nobind --persist-key --persist-tun --ca ca.crt --key xeno.key --cert xeno.crt --redirect-gateway --dhcp-option DNS 200.20.41.205 --dhcp-option DNS 200.47.22.122 --comp-lzo --tun-mtu 1500 --fragment max --mssfix --verb 5', $OpenDir, @SW_SHOW)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
xeno
Niveau 4
Niveau 4
Messages : 79
Enregistré le : sam. 23 mai 2009 02:43
Status : Hors ligne

Re: [..] Comspec, La ligne entrée est trop longue

#4

Message par xeno »

ah bah, c'étais presque ça :wink:

en supprimant le $opendir de la fin cela fonctionne.

Code : Tout sélectionner

$OpenDir = 'C:\Program Files (x86)\OpenVPN\bin\'
Run(@ComSpec & ' /k "' & $OpenDir & 'openvpn.exe" --log test.log --client --dev tun --remote 188.16.238.25 --port 1194 --resolv-retry infinite --nobind --persist-key --persist-tun --ca ca.crt --key xeno.key --cert xeno.crt --redirect-gateway --dhcp-option DNS 200.20.41.205 --dhcp-option DNS 200.47.22.122 --comp-lzo --tun-mtu 1500 --fragment max --mssfix --verb 5', "", @SW_SHOW)
j'ai pas pensée a essayé comme ça pourtant ma première version ressemblait a ceci a part que je mettais directement

Code : Tout sélectionner

C:\Program Files (x86)\OpenVPN\bin\openvpn.exe
a la place de $opendir, pour voir si cela étais possible, c'est après que j'ai essayé en morcelant, mais sans plus de succès..

bon et bien je vais essayer dans ce sens, car ma ligne de commande n'est pas tout a fait complète, il faut que j'y intègre les chemins des certificat et clés et de de openvpn qui n'auront pas des chemins fixe, pour obtenir ce que je désire...

Merci
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] Comspec, La ligne entrée est trop longue

#5

Message par ani »

Rappel,la commande run fonctionne de la manière suivante
Premier paramètre : Nom du fichier a executer (exe,bat,com;pif)
Second paramètre : le dossier d'execution (En option)
Troisième paramètre : Mode d'affichage (En option)
Quatrième paramètre : Flux du processus entrée/sortie (En option)

En option := Pas obligatoire

Pour votre exemple:
On peut soit utiliser les 3 paramétre en indiquant (nom2lexe,SonDossier,Modedaffichage)
Nom2lexe = openvpn.exe
Sondossier = $opendir
modedaffichage = pas besoin d'explication ;)

Code : Tout sélectionner

$OpenDir = 'C:\Program Files (x86)\OpenVPN\bin\'
Run(@ComSpec & ' /k openvpn.exe --log test.log --client --dev tun --remote 188.16.238.25 --port 1194 --resolv-retry infinite --nobind --persist-key --persist-tun --ca ca.crt --key xeno.key --cert xeno.crt --redirect-gateway --dhcp-option DNS 200.20.41.205 --dhcp-option DNS 200.47.22.122 --comp-lzo --tun-mtu 1500 --fragment max --mssfix --verb 5', $OpenDir, @SW_SHOW)

OU bien utiliser que 2 paramètre en indiquant (Dossier+exe,"",Modedaffichage)
Dossier+exe = lien relatif = $opendir & "openvpn.exe"

voilàvoilà
Avatar du membre
xeno
Niveau 4
Niveau 4
Messages : 79
Enregistré le : sam. 23 mai 2009 02:43
Status : Hors ligne

Re: [..] Comspec, La ligne entrée est trop longue

#6

Message par xeno »

Bon c'est chaud quand même à faire, mais j'ai le résultat voulu

grosso modo la commande finale ressemble à ceci, car j'utilise un inputbox avec FileOpenDialog pour renseigner les chemin.

Code : Tout sélectionner

 
 $ca = 'C:\Program Files (x86)\OpenVPN\config\ca.crt'
 $key = 'C:\Program Files (x86)\OpenVPN\config\xeno.key'
 $cert = 'C:\Program Files (x86)\OpenVPN\config\xeno.crt'
 $OpenDir = 'C:\Program Files (x86)\OpenVPN\bin\'


Run(@ComSpec & ' /k "' &'"' & $OpenDir & 'openvpn.exe" --log test.log --client --dev tun --proto tcp-client --remote 148.154.138.25 --port 443 --resolv-retry infinite --nobind --persist-key --persist-tun --ca ' &'"' & $ca &'"' & ' --key ' &'"' & $key &'"' &' --cert ' &'"' & $cert &'"' &' --redirect-gateway --dhcp-option DNS 105.21.142.205 --dhcp-option DNS 128.167.22.42 --comp-lzo --route-method exe --route-delay 2 --verb 5' &'"',"", @SW_SHOW)
 
bon maintenant il faut que je regarde comment envoyer "F4" pour fermer cette fenêtre sans la faire apparaitre.

Merci, à dans un prochain sujet :mrgreen:
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [R] Comspec, La ligne entrée est trop longue

#7

Message par ani »

Pour rendre la fenêtre dos invisible remplacer @sw_show par @sw_hide
N'oubliez pas cette macro @ProgramFilesDir qui retournera dans votre cas C:\Program Files (x86)

Est-ce que l'une des solutions fonctionne ?

Code : Tout sélectionner

Dim $VPN_Dir,$VPN_EXE,$ca,$key,$cert
$VPN_Dir = "C:\Program Files (x86)\OpenVPN"
$VPN_Exe = "bin\openvpn.exe"
$ca = "config\ca.crt"
$key = "config\xeno.key"
$cert = "config\xeno.crt"

;Couper fonction
Run(@ComSpec & ' /c "' & $VPN_EXE & '" --log test.log --client --dev tun --proto tcp-client --remote 148.154.138.25 --port 443 --resolv-retry infinite --nobind --persist-key --persist-tun --ca "' & $ca & '" --key "' & $key & '" --cert "' & $cert &'" --redirect-gateway --dhcp-option DNS 105.21.142.205 --dhcp-option DNS 128.167.22.42 --comp-lzo --route-method exe --route-delay 2 --verb 5',$VPN_Dir,@SW_HIDE)
;Fin de coupe
 
Exit
Remplacer la fonction run par celle-ci

Code : Tout sélectionner

Run('"' & $VPN_EXE & '" --log test.log --client --dev tun --proto tcp-client --remote 148.154.138.25 --port 443 --resolv-retry infinite --nobind --persist-key --persist-tun --ca "' & $ca & '" --key "' & $key & '" --cert "' & $cert &'" --redirect-gateway --dhcp-option DNS 105.21.142.205 --dhcp-option DNS 128.167.22.42 --comp-lzo --route-method exe --route-delay 2 --verb 5',$VPN_Dir,@SW_HIDE)
Remplacer la fonction run par celle-ci

Code : Tout sélectionner

Run($VPN_EXE & ' --log test.log --client --dev tun --proto tcp-client --remote 148.154.138.25 --port 443 --resolv-retry infinite --nobind --persist-key --persist-tun --ca "' & $ca & '" --key "' & $key & '" --cert "' & $cert &'" --redirect-gateway --dhcp-option DNS 105.21.142.205 --dhcp-option DNS 128.167.22.42 --comp-lzo --route-method exe --route-delay 2 --verb 5',$VPN_Dir,@SW_HIDE)
Remplacer la fonction run par celle-ci

Code : Tout sélectionner

ShellExecute($VPN_Exe,'" --log test.log --client --dev tun --proto tcp-client --remote 148.154.138.25 --port 443 --resolv-retry infinite --nobind --persist-key --persist-tun --ca "' & $ca & '" --key "' & $key & '" --cert "' & $cert & '" --redirect-gateway --dhcp-option DNS 105.21.142.205 --dhcp-option DNS 128.167.22.42 --comp-lzo --route-method exe --route-delay 2 --verb 5',$VPN_Dir,"",@SW_HIDE)

Voilàvoilà
Habibsbib
Niveau 7
Niveau 7
Messages : 393
Enregistré le : dim. 30 août 2009 13:49
Localisation : Euh...Verticale, entre le siège et l'écran...
Status : Hors ligne

Re: [R] Comspec, La ligne entrée est trop longue

#8

Message par Habibsbib »

Je n'ai pas compris ani : moi quand je fais un run, si je mets par exemple :

Code : Tout sélectionner

Run ("E:\AutoIt3\SciTE\SciTE.exe")
Ben ça marche très bien ! Et je n'ai pas eu besoin de préciser le dossier dans workingdir :? j'ai pas tout compris...
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [R] Comspec, La ligne entrée est trop longue

#9

Message par ani »

>Salut, çà fonctionne aussi de cette manière.
Le workingdir comme son nom l'indique c'est le dossier de travail.
-Teste ceux-ci

Code : Tout sélectionner

run(@compSpec & " /c scite.exe","E:\AutoIt3\SciTE",@sw_hide)
exit

Code : Tout sélectionner

Shellexecute("scite.exe","","E:\AutoIt3\SciTE")
exit
Le shellexecute est bien mieux ;)
Habibsbib
Niveau 7
Niveau 7
Messages : 393
Enregistré le : dim. 30 août 2009 13:49
Localisation : Euh...Verticale, entre le siège et l'écran...
Status : Hors ligne

Re: [R] Comspec, La ligne entrée est trop longue

#10

Message par Habibsbib »

D'accord, j'ai compris. Merci.
Répondre