Aide et conseils concernant AutoIt et ses outils.
flammedemon
Niveau 3
Messages : 32 Enregistré le : lun. 19 sept. 2011 12:58
Status :
Hors ligne
#1
Message
par flammedemon » mar. 02 déc. 2014 11:17
Bonjour,
Je cherche à trouver le chemin d'execution de mon programme :
Ex : c:\partage\installeur
Ex2: \\postedetoto\partage\installeur\
Ex3 : x:\partage\installeur\
J'utilise la commande @ScriptDir qui me donne satisfaction, mais je veux l'utiliser pour trouver le répertoire en dessous (dans l'exemple partage, le script étant lancé depuis le dossier installeur).
J'ai tenté sa (sans succès) :
et sa
et puis sa
et encore sa
Je ne saisi pas comment je peux le faire, je suis sur que c'est bête mais malheureusement j'ai pas trouvé.
Modifié en dernier par
flammedemon le mar. 02 déc. 2014 13:41, modifié 1 fois.
Faco
Niveau 4
Messages : 80 Enregistré le : lun. 29 juil. 2013 18:09
Status :
Hors ligne
#2
Message
par Faco » mar. 02 déc. 2014 11:26
Salut,
pas tout compris mais je répond quand même ^^.
pour moi tu veux le dossier juste supérieur.
ex : "\\postedetoto\partage\installeur\" => "installeur"
Dans ce cas, essaie avec StringSplit et @ScriptDir
flammedemon
Niveau 3
Messages : 32 Enregistré le : lun. 19 sept. 2011 12:58
Status :
Hors ligne
#3
Message
par flammedemon » mar. 02 déc. 2014 11:31
Faco a écrit : Salut,
pas tout compris mais je répond quand même ^^.
pour moi tu veux le dossier juste supérieur.
ex : "\\postedetoto\partage\installeur\" => "installeur"
Dans ce cas, essaie avec StringSplit et @ScriptDir
En faite le script es lancer dans installeur avec @ScriptDir je vois bien ceci du coup (c:\partage\installeur)
Moi ce que je souhaite c'est trouver c:\partage le répertoire du dessous !
DimVar
Niveau 10
Messages : 870 Enregistré le : ven. 30 mai 2008 15:08
Status :
Hors ligne
#4
Message
par DimVar » mar. 02 déc. 2014 11:37
Bonjour,
Qu'entendez-vous par "répertoire en dessous" ? La notion de parent/enfant vous est elle familière ? (éventuellement aval/amont)
Ex:
C:\dossier1\dossier2\
Le "dossier1" est le dossier parent de "dossier2". Le "dossier2" est le dossier enfant.
La chaine (string) renvoyée par @scriptdir est effectivement gérable (split) avec les fonctions précisées par Faco. Etudier la fonction "stringsplit".
StringSplit (@ScriptDir,"\") ; S'il s'agit d'un chemin local
StringSplit (@ScriptDir,"/") ; S'il s'agit d'un chemin reseau
Cdlt, Dimvar.
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !
Clampu
Niveau 3
Messages : 48 Enregistré le : mer. 16 mai 2012 22:08
Status :
Hors ligne
#5
Message
par Clampu » mar. 02 déc. 2014 11:50
Je pense qu'il voulait dire "dessus" et pas "dessous"
Si c'est le cas, tu peux utiliser
Code : Tout sélectionner
StringSplit(@ScriptDir, "\")[StringSplit(@ScriptDir, "\")[0]]
flammedemon
Niveau 3
Messages : 32 Enregistré le : lun. 19 sept. 2011 12:58
Status :
Hors ligne
#6
Message
par flammedemon » mar. 02 déc. 2014 12:34
Clampu a écrit : Je pense qu'il voulait dire "dessus" et pas "dessous"
Si c'est le cas, tu peux utiliser
Code : Tout sélectionner
StringSplit(@ScriptDir, "\")[StringSplit(@ScriptDir, "\")[0]]
Merci de vos réponses Facon, DimVar et Clampu mais il supprime tout ce que je veux récupéré justement. Je veux effectivement le dossier parent.
Petite question autre si c'est un lecteur mappé il le considère en tant que chemin local ou réseau ?
walkson
Modérateur
Messages : 1038 Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status :
Hors ligne
#7
Message
par walkson » mar. 02 déc. 2014 13:00
Bonjour,
Pour remonter d'un ou de deux niveaux:
Code : Tout sélectionner
Msgbox (0, @ScriptDir, StringRegExpReplace(@ScriptDir , '(.+\\)[^\\]+', "$1") )
Msgbox (0, @ScriptDir, StringRegExpReplace(@ScriptDir , '(.+\\)(.+\\)[^\\]+', "$1") )
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
flammedemon
Niveau 3
Messages : 32 Enregistré le : lun. 19 sept. 2011 12:58
Status :
Hors ligne
#8
Message
par flammedemon » mar. 02 déc. 2014 13:10
walkson a écrit : Bonjour,
Pour remonter d'un ou de deux niveaux:
Code : Tout sélectionner
Msgbox (0, @ScriptDir, StringRegExpReplace(@ScriptDir , '(.+\\)[^\\]+', "$1") )
Msgbox (0, @ScriptDir, StringRegExpReplace(@ScriptDir , '(.+\\)(.+\\)[^\\]+', "$1") )
C'est exactement sa
Merci à toi
DimVar
Niveau 10
Messages : 870 Enregistré le : ven. 30 mai 2008 15:08
Status :
Hors ligne
#9
Message
par DimVar » mar. 02 déc. 2014 13:49
flammedemon a écrit : Petite question autre si c'est un lecteur mappé il le considère en tant que chemin local ou réseau ?
Lecteur local (c'est l'un des intérêt du mappage).
Cdlt, Dimvar.
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !
jguinch
Modérateur
Messages : 2515 Enregistré le : lun. 14 févr. 2011 22:12
Status :
Hors ligne
#10
Message
par jguinch » mar. 02 déc. 2014 13:52
Pour choisir le nombre de niveaux, tu peux faire comme ça (remplacer "1" par le nombre de niveaux à remonter) :
Code : Tout sélectionner
ConsoleWrite( StringRegExpReplace(@ScriptDir, "(\\[^\\]+){1}$", "") )
Sinon, tu peux aussi passer par _PathFull :
Code : Tout sélectionner
#include <File.au3>
ConsoleWrite( _PathFull(@ScriptDir & "\.." ) )
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !