[R] Chemin d'éxécution

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
flammedemon
Niveau 3
Niveau 3
Messages : 32
Enregistré le : lun. 19 sept. 2011 12:58
Status : Hors ligne

[R] Chemin d'éxécution

#1

Message par flammedemon »

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) :

Code : Tout sélectionner

(@ScriptDir & "\..\")
et sa

Code : Tout sélectionner

(@ScriptDir & "..\")
et puis sa

Code : Tout sélectionner

(@ScriptDir & "\..")
et encore sa

Code : Tout sélectionner

(@ScriptDir & "..")
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
Niveau 4
Messages : 80
Enregistré le : lun. 29 juil. 2013 18:09
Status : Hors ligne

Re: [..] Chemin d'éxécution

#2

Message par Faco »

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
Niveau 3
Messages : 32
Enregistré le : lun. 19 sept. 2011 12:58
Status : Hors ligne

Re: [..] Chemin d'éxécution

#3

Message par flammedemon »

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 !
Avatar du membre
DimVar
Niveau 10
Niveau 10
Messages : 870
Enregistré le : ven. 30 mai 2008 15:08
Status : Hors ligne

Re: [..] Chemin d'éxécution

#4

Message par DimVar »

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
Niveau 3
Messages : 48
Enregistré le : mer. 16 mai 2012 22:08
Status : Hors ligne

Re: [..] Chemin d'éxécution

#5

Message par Clampu »

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
Niveau 3
Messages : 32
Enregistré le : lun. 19 sept. 2011 12:58
Status : Hors ligne

Re: [..] Chemin d'éxécution

#6

Message par flammedemon »

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 ?
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1038
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: [..] Chemin d'éxécution

#7

Message par walkson »

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
Niveau 3
Messages : 32
Enregistré le : lun. 19 sept. 2011 12:58
Status : Hors ligne

Re: [..] Chemin d'éxécution

#8

Message par flammedemon »

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
Avatar du membre
DimVar
Niveau 10
Niveau 10
Messages : 870
Enregistré le : ven. 30 mai 2008 15:08
Status : Hors ligne

Re: [..] Chemin d'éxécution

#9

Message par DimVar »

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 !
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [R] Chemin d'éxécution

#10

Message par jguinch »

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 !
Répondre