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

VBScript Discussion :

Nom du dossier parent seul dans une variable


Sujet :

VBScript

  1. #1
    Membre habitué
    Homme Profil pro
    Conseils, formations et assistance aux utilisateurs
    Inscrit en
    Septembre 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseils, formations et assistance aux utilisateurs

    Informations forums :
    Inscription : Septembre 2008
    Messages : 137
    Points : 129
    Points
    129
    Par défaut Nom du dossier parent seul dans une variable
    Bonjour,

    Je souhaiterais récupérer le nom du dossier dans lequel se trouve le fichier vbs que j'exécute.

    Par exemple, en exécutant c:\machin\chose\truc\toto.vbs, je souhaiterais pouvoir récupérer 'truc' dans une variable.

    En cherchant dans la FAQ, j'ai trouvé une piste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox WScript.ScriptFullName
    Ceci m'affiche le chemin en entier. J'ai bien essayé :

    Mais le dossier remonté n'est pas celui dans lequel se trouve mon fichier vbs.

    Suis-je obligé d'utiliser des fonctions du genre LTRIM pour virer tout le début du chemin complet du répertoire ?

    Merci de votre aide.

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    pour récupérer une partie du répertoire tu peu utiliser split :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    tb = split(WScript.ScriptFullName,"\")
    i = ubound(tb)
    if i > 0 then 
    	msgbox tb(i-1)
    end if

  3. #3
    Membre habitué
    Homme Profil pro
    Conseils, formations et assistance aux utilisateurs
    Inscrit en
    Septembre 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseils, formations et assistance aux utilisateurs

    Informations forums :
    Inscription : Septembre 2008
    Messages : 137
    Points : 129
    Points
    129
    Par défaut
    Génial, c'est exactement le résultat que je souhaite !
    Merci à toi bbil !

  4. #4
    Membre habitué
    Homme Profil pro
    Conseils, formations et assistance aux utilisateurs
    Inscrit en
    Septembre 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseils, formations et assistance aux utilisateurs

    Informations forums :
    Inscription : Septembre 2008
    Messages : 137
    Points : 129
    Points
    129
    Par défaut
    Petit message d'erreur lorsque j'intègre le code à un cript d'une page html :

    Message : Indice en dehors de la plage: '[number: -2]'
    J'ai créé un formulaire qui mémorise des informations dans un fichier TXT et CSV. Voici le code (en gras, ce que j'ai rajouté et adapté) :

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <SCRIPT LANGUAGE="VBScript"> 
    <!--
    Sub Submit_OnClick
    
      Const ForAppending = 8 
      Dim TheForm
      Dim Fso, f
    
      Set wsnetwork = CreateObject("WScript.Network" )
      user = wsnetwork.username 
    
      Set Fso = CreateObject("Scripting.FileSystemObject")
      Set f = Fso.OpenTextFile("cli.txt", ForAppending,true)
      Set g = Fso.OpenTextFile("cli.csv", ForAppending,true)
      Set TheForm = Document.ValidForm
      tb = split(ScriptFullName,"\")
      i = ubound(tb)
    
      if TheForm.Text1.value <> "" then
        f.write(tb(i-1) & "/" & Day(Now) & "/" & Month(Now) & "/" & Year(Now) & "; "& user & "; "& TheForm.action.value & "; "& TheForm.Text1.value & chr(13))
        g.write(tb(i-1) & "/" & Day(Now) & "/" & Month(Now) & "/" & Year(Now) & "; " & user & "; " & TheForm.action.value & "; " & TheForm.Text1.value & chr(13))
        window.location.reload()
      else
        Msgbox "Attention ! Aucune action à enregistrer"
      end if
    
    End Sub
    
    -->
    </SCRIPT>
    Je crois comprendre qu'il y a un truc avec WSCRIPT mais mes tentatives de résolution et mes recherches (tentatives de déclation de WSCRIPT) restent vaines.

    Si vous avez une idée, je suis preneur !

  5. #5
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Dans un Html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     tb = split(window.document.url,"\")

  6. #6
    Membre habitué
    Homme Profil pro
    Conseils, formations et assistance aux utilisateurs
    Inscrit en
    Septembre 2008
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseils, formations et assistance aux utilisateurs

    Informations forums :
    Inscription : Septembre 2008
    Messages : 137
    Points : 129
    Points
    129
    Par défaut
    ok, ok.
    Bon j'ai du mal à saisir les raisons pour lesquelles il y a une nuance de syntaxe entre le vbs et le html. Je vais essayer de trouver une doc.

    En tout cas merci de ton aide. Ca marche très bien avec cette syntaxe !

    Crois-tu qu'il serait plus sage d'appeler un fichier VBS (contenant ce script) depuis la page HTML, plutôt que de mettre le script au sein de la page HTML ?

  7. #7
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040

  8. #8
    Membre chevronné
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Points : 1 991
    Points
    1 991
    Par défaut
    salut,

    ou bien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    set fs = createobject("scripting.filesystemobject")
    msgbox fs.getbasename(fs.getparentfoldername(wsh.scriptfullname))

  9. #9
    Membre actif
    Homme Profil pro
    retraité
    Inscrit en
    Juillet 2011
    Messages
    384
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Juillet 2011
    Messages : 384
    Points : 249
    Points
    249
    Par défaut
    Voila une autre façon avec le nom complet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
           i  = InStrRev(Wscript.ScriptFullName,"\")
           rep  =   Left(Wscript.ScriptFullName,i) ' & "\"
     Set      oFso   = CreateObject("Scripting.FileSystemObject")
          precedent  =   ofso.GetFolder(Rep).ParentFolder

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

Discussions similaires

  1. [LibreOffice][Base de données] insérer dans une variable le nom d'un champ de la fiche active afin d'ouvrir un dossier de ce nom
    Par felixltx dans le forum OpenOffice & LibreOffice
    Réponses: 14
    Dernier message: 04/08/2021, 13h43
  2. [AC-2007] Passer le nom d'un sous-formulaire dans une variable
    Par faroukvazaha dans le forum VBA Access
    Réponses: 10
    Dernier message: 30/12/2014, 11h56
  3. Récupérer le nom du fichier en cours dans une variable.
    Par quiky dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 06/05/2009, 13h28
  4. Réponses: 1
    Dernier message: 04/04/2007, 11h03
  5. Réponses: 7
    Dernier message: 25/10/2005, 15h19

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