Rechercher : dans
Par :

VBS:Récuper le chemin du script

Dernière réponse le 29 jun 2009 à 13:59:10 Gamarah, le 15 jun 2009 à 18:03:59 
 Signaler ce message aux modérateurs

Bonjour,
J'ai créé un script qui dois enregistrez dans un fichier texte le contenu d'une variable (Id), je voudrais enregistrer le fichier texte dans le chemin d'accès du script :

[...]
Const ForReading = 1, ForWriting = 2
Set WshShell = WScript.CreateObject("WScript.Shell")
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("***\Identifiant.txt", ForWriting,true)
f.write(Id)
[...]

Je voudrais savoir si il y a un moyen pour à la place des *** mettre le chemin d'accès du script en exécution...

Merci

Configuration: Windows Vista
Firefox 3.0.11

Meilleures réponses pour « VBS:Récuper le chemin du script » dans :
Exécuter un script shell VoirExécution d'un script Pour pouvoir exécuter un script ou un programme en ligne de commande il y a plusieurs possibilités : 1. Le chemin absolu 2. Le chemin relatif 3. Modifier la variable PATH Note: Le Sha-Bang Premièrement,...
Comment récupérer le résultat d'une commande dans une variable VoirComment récupérer le résultat d'une commande dans une variable Préambule Syntaxe Exemples Préambule Il est bien souvent nécessaire de récupérer le résultat d'une commande (ou de son code retour) dans une variable afin de pouvoir...
[Shell] Récupérer son IP publique VoirFinalité Pour plusieurs raisons, on peut avoir besoin de récupérer son adresse IP publique dans un script. Le problème qui se pose alors si l'on est sur un LAN, est de trouver cette IP sans interventions humaine. Mise en œuvre Le moyen le plus...
Introduction à VBScript VoirPrésentation de VB Script VBScript (aussi appelé Visual Basic Scripting Edition) est un sous-ensemble du langage Visual Basic for Applications (VBA), un langage propriétaire de Microsoft prévu pour être intégré aux produits Microsoft Office©,...
PHP - Récupération de données VoirPHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML. Création d'un formulaire Grâce à la balise FORM du langage HTML, il est très simple de créer des formulaires comprenant : des champs de saisie des...

1

Z3n1th, le 24 jun 2009 à 14:47:36

Voici un premier exemple :

'Une fausse solution
Dim fso, f, path
Set fso = CreateObject("Scripting.FileSystemObject")
path = fso.getabsolutepathname(".")
Set f = fso.OpenTextFile(path & "\Identifiant.txt", ForWriting,true)

L'ennui de ce code, c'est qu'il donne le répertoire d'où l'on exécute le script, donc si tu le lances avec cmd ou un autre programme, il faudrait d'abord se placer dans le répertoire du script. Donc utilise plutôt ce code :
Dim fso, f, path
Set fso = CreateObject("Scripting.FileSystemObject")
path = fso.GetParentFolderName(wscript.ScriptFullName)
Set f = fso.OpenTextFile(path & "\Identifiant.txt", ForWriting,true)

Là, ça donne le même résultat quel que soit le dossier depuis lequel tu l'exécutes.

Sinon, en hta, j'utiliserais ceci (si quelqu'un a une meilleure solution, ça m'intéresse) :
Set fso = CreateObject("Scripting.FileSystemObject")
path = Replace(Replace(document.location.pathname, "MonFichier.hta", ""), "%20", " ")
Set f = fso.OpenTextFile(path & "Identifiant.txt", ForWriting,true)

Si quelqu'un a mieux, qu'il poste ici, je n'ai débuté le vbs que très récemment et mes connaissances de ce langage se résument à ce que Google m'apporte.

Répondre à Z3n1th

2

Gamarah, le 27 jun 2009 à 17:09:23

Merci... Je viens aussi de trouver une solution plus courte :

Path = Left(WScript.ScriptFullName, InStr(WScript.ScriptFullName, WScript.ScriptName)-1)

Répondre à Gamarah

3

 Z3n1th, le 29 jun 2009 à 13:59:10

Je ne vois pas vraiment en quoi ce que tu proposes est plus court ou plus explicite que :

'path = "\\le\repertoire\du\script"
path = fso.GetParentFolderName(wscript.ScriptFullName)

Si tu veux absolument faire toi-même le découpage du string, tu n'as qu'à faire :
'path = "\\le\repertoire\du\script\"
path = Replace(WScript.ScriptFullName, WScript.ScriptName, "")

Plus le code est simple à comprendre, mieux c'est.

Répondre à Z3n1th