OVH Cloud OVH Cloud

Trouver le chemin

28 réponses
Avatar
Alain Lebayle
Bonjour,
Je cherche à contourner un problème, je souhaite atteindre un fichier
toto, qui se trouve en C:\Documents and Settings\Nom d'utilisateur\
Application Data\toto, le problème est que le nom d'utilisateur est
forcément différend d'un poste à l'autre.
Comment faire afin de contourner le pb ?
Je vous remercie
Alain

10 réponses

1 2 3
Avatar
michdenis
'Pour trouver le nom de l'usager, tu peux utiliser ceci dans ton vbscript
Set objNetwork = CreateObject("WScript.Network")
Usager = objNetwork.UserName

Origine = "C:Documents and Settings" & usager & "" & _
Application DataThunderbirdProfiles"

'Pour trouver le nom du répertoire : "ia02c5qy.default"
Temp = dire(origine) 'Fonction dire dans le bas de ton vbscript

'Reconstitution du chemin complet par concaténation
Origine = origine & Temp & "prefs.js"

'Le reste de ton code

'-----------------------------------------
Fonction Dire(Origine)
Dim objFSO, Rep, F, MyVar
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set Rep = objFSO.GetFolder(Origine)
For Each F In Rep.SubFolders
If InStr(1, F.Name, ".defaut", vbTextCompare) > 0 Then
MyVar = F.Name
Exit For
End If
Next
Set objFSO = Nothing: Set Rep = Nothing: Set F = Nothing
Dire = MyVar
End Function
'-----------------------------------------
Avatar
Alain Lebayle
Bonsoir Jacques93,
Je te remercie grandement ainsi que tous les autres contributeurs de
m'aider sur cette procédure, mais je ne connais pas très bien, le
langage VBS et de fait, j'ai beaucoup de mal à adapter.
Mais effectivement, cela fonctionne parfaitement pour avoir le chemin
par défaut. Mais comme tu le dis, je butte sur le dossier *.default

Alain

Jacques93 a écrit :
Alain Lebayle a écrit :
Bonsoir Jacques93,
le script avec Copy fonctionne très bien,



On ne doit pas avoir la même version de VBS ...

En fait, je souhaite installer ce script dans le groupe de démarrage
de chaque PC de mon service, mais le pb est que cela change suivant
chaque utilisateur, j'ai un pb avec l'utilisateur.

Origine = "C:Documents and Settingsl'utilisateurApplication
DataThunderbirdProfilesia02c5qy.defaultprefs.js"




Pour l'utilisateur, voir ma réponse du 05/04/10 à 22:48

Dim oShell

Set oShell = CreateObject( "WScript.Shell" )
MsgBox oShell.ExpandEnvironmentStrings("%AppData%") & "Toto"
Set oShell = Nothing

Mais ça ne réglera pas tout, car le nom du profil TB, dans ton exemple
ia02c5qy est lui aussi variable.

Avatar
Alain Lebayle
Bonsoir Michdenis et un très grand merci également pour ta précieuse aide.
Je teste tout cela au travail demain, et te tiens au courant
Très bonne soirée
Alain

michdenis a écrit :
'Pour trouver le nom de l'usager, tu peux utiliser ceci dans ton vbscript
Set objNetwork = CreateObject("WScript.Network")
Usager = objNetwork.UserName

Origine = "C:Documents and Settings" & usager & "" & _
Application DataThunderbirdProfiles"

'Pour trouver le nom du répertoire : "ia02c5qy.default"
Temp = dire(origine) 'Fonction dire dans le bas de ton vbscript

'Reconstitution du chemin complet par concaténation
Origine = origine & Temp & "prefs.js"

'Le reste de ton code

'-----------------------------------------
Fonction Dire(Origine)
Dim objFSO, Rep, F, MyVar
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set Rep = objFSO.GetFolder(Origine)
For Each F In Rep.SubFolders
If InStr(1, F.Name, ".defaut", vbTextCompare) > 0 Then
MyVar = F.Name
Exit For
End If
Next
Set objFSO = Nothing: Set Rep = Nothing: Set F = Nothing
Dire = MyVar
End Function
'-----------------------------------------




Avatar
Jacques93
Il y a beaucoup de points communs entre la syntaxe de VBA et de VBS.
Par contre, certains objets, ici wsh (Shell), fso (FileSystemObject),
sont plus fréquemment utilisés en VBS :

Dim wsh, fso
Dim ProfilesPath, fColl, f1
Dim Origine

Set wsh = CreateObject( "WScript.Shell" )
set fso = CreateObject ("Scripting.FileSystemObject")

Set ProfilesPath = fso.GetFolder _
(wsh.ExpandEnvironmentStrings("%AppData%") & _
"ThunderbirdProfiles")

Set fColl = ProfilesPath.SubFolders
For Each f1 in fColl
If LCase(Right(f1.Name,8)) = ".default" then
Origine = ProfilesPath & "" & f1.Name & "" & "prefs.js"
End If
Next

MsgBox "Origine : " & Origine

fso.CopyFile Origine, "C:", True

Set fso = Nothing
Set wsh = Nothing

NB : il y a un forum dédié au scripting (pas uniquement VBS)

microsoft.public.fr.scripting


Alain Lebayle a écrit :

Bonsoir Jacques93,
Je te remercie grandement ainsi que tous les autres contributeurs de
m'aider sur cette procédure, mais je ne connais pas très bien, le
langage VBS et de fait, j'ai beaucoup de mal à adapter.
Mais effectivement, cela fonctionne parfaitement pour avoir le chemin
par défaut. Mais comme tu le dis, je butte sur le dossier *.default






--

Cordialement,

Jacques.
Avatar
Alain Lebayle
Bonsoir Michdenis,
Malheureusement, je n'ai pas réussi à faire fonctionner ta procédure,
mais en revanche j'ai parfaitement réussi à faire fonctionner celle de
Jacques93.
Encore une fois un grand merci à tous !!!
Michdenis, At, Daniel.C et Jacques93
Très bonne soirée
Alain

michdenis a écrit :
'Pour trouver le nom de l'usager, tu peux utiliser ceci dans ton vbscript
Set objNetwork = CreateObject("WScript.Network")
Usager = objNetwork.UserName

Origine = "C:Documents and Settings" & usager & "" & _
Application DataThunderbirdProfiles"

'Pour trouver le nom du répertoire : "ia02c5qy.default"
Temp = dire(origine) 'Fonction dire dans le bas de ton vbscript

'Reconstitution du chemin complet par concaténation
Origine = origine & Temp & "prefs.js"

'Le reste de ton code

'-----------------------------------------
Fonction Dire(Origine)
Dim objFSO, Rep, F, MyVar
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set Rep = objFSO.GetFolder(Origine)
For Each F In Rep.SubFolders
If InStr(1, F.Name, ".defaut", vbTextCompare) > 0 Then
MyVar = F.Name
Exit For
End If
Next
Set objFSO = Nothing: Set Rep = Nothing: Set F = Nothing
Dire = MyVar
End Function
'-----------------------------------------




Avatar
michdenis
Voici la procédure du fichier .vbs

Évidemment au lieu du message, tu termines ce fichier
comme tu l'entends.

'-----------------------------------------
Dim Wsh, ObjNetwork, Origine, Usager, Temp
Dim objFSO, Rep, F

Set wsh = CreateObject( "WScript.Shell" )
Set objNetwork = CreateObject("WScript.Network")
usager = objNetwork.UserName
Origine = "C:Documents and Settings" & usager & "" & _
"Application DataThunderbirdProfiles"
Temp = Extraire(origine)

MsgBox Origine & temp & "prefs.js"

Function Extraire(Temp)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set Rep = objFSO.GetFolder(Temp)
For Each F In Rep.SubFolders
If InStr(1, F.Name, ".defaut",1) > 0 Then
Extraire = F.Name
Exit For
End If
Next
End Function
'-----------------------------------------



"Alain Lebayle" a écrit dans le message de groupe de
discussion : #
Bonsoir Michdenis,
Malheureusement, je n'ai pas réussi à faire fonctionner ta procédure,
mais en revanche j'ai parfaitement réussi à faire fonctionner celle de
Jacques93.
Encore une fois un grand merci à tous !!!
Michdenis, At, Daniel.C et Jacques93
Très bonne soirée
Alain

michdenis a écrit :
'Pour trouver le nom de l'usager, tu peux utiliser ceci dans ton vbscript
Set objNetwork = CreateObject("WScript.Network")
Usager = objNetwork.UserName

Origine = "C:Documents and Settings" & usager & "" & _
Application DataThunderbirdProfiles"

'Pour trouver le nom du répertoire : "ia02c5qy.default"
Temp = dire(origine) 'Fonction dire dans le bas de ton vbscript

'Reconstitution du chemin complet par concaténation
Origine = origine & Temp & "prefs.js"

'Le reste de ton code

'-----------------------------------------
Fonction Dire(Origine)
Dim objFSO, Rep, F, MyVar
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set Rep = objFSO.GetFolder(Origine)
For Each F In Rep.SubFolders
If InStr(1, F.Name, ".defaut", vbTextCompare) > 0 Then
MyVar = F.Name
Exit For
End If
Next
Set objFSO = Nothing: Set Rep = Nothing: Set F = Nothing
Dire = MyVar
End Function
'-----------------------------------------




Avatar
Jacques93
Bonjour michdenis,

Que ce soit en VBS ou en VBA, je crois qu'il vaut mieux éviter
d'indiquer en dur 'X:Documents and SettingsNomUtilisateurApplication
Data...'

Sous W7 (en fait à partir de Vista), ce répertoire a changé
d'arborescence, et pour le profil TB il se trouve dans :

X:UsersNomUtilisateurAppDataRoamingThunderbirdProfiles

d'où ma préférence d'utiliser la variable d'environnement %AppData%
qui renvoie le bon chemin, quelque soit l'OS.

michdenis a écrit :
Voici la procédure du fichier .vbs

Évidemment au lieu du message, tu termines ce fichier
comme tu l'entends.

'-----------------------------------------
Dim Wsh, ObjNetwork, Origine, Usager, Temp
Dim objFSO, Rep, F

Set wsh = CreateObject( "WScript.Shell" )
Set objNetwork = CreateObject("WScript.Network")
usager = objNetwork.UserName
Origine = "C:Documents and Settings" & usager & "" & _
"Application DataThunderbirdProfiles"
Temp = Extraire(origine)

MsgBox Origine & temp & "prefs.js"

Function Extraire(Temp)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set Rep = objFSO.GetFolder(Temp)
For Each F In Rep.SubFolders
If InStr(1, F.Name, ".defaut",1) > 0 Then
Extraire = F.Name
Exit For
End If
Next
End Function
'-----------------------------------------




--

Cordialement,

Jacques.
Avatar
michdenis
Mon dernier message était seulement pour démontrer
que le message précédant fonctionnait bien, mais qu'il
fallait lui donner la syntaxe désirée.

Si quelqu'un a besoin d'utiliser une variable d'environnement
quelconque, il peut faire ceci :

A ) D'abord pour choisir la variable dont il a besoin, il les affiche
dans une feuille de calcul.
'-----------------------------------
Sub test()
For a = 1 To 50
Range("A" & a) = Environ(a)
Next
End Sub
'-----------------------------------

B ) Pour intégrer son choix de "A" à l'intérieur d'un vbscript, il peut faire ceci :
Ce qui suit est un script fonctionnel. Au lieu de "LOCALAPPDATA", il
a le choix entre 38 éléments différents. J'aime bien insérer des petites
fonctions pour extraire l'information désirée. (Je ne me souviens plus
de l'auteur de cette fonction prise dans mes notes.)
Dans le script que j'ai proposé, il n'a qu'à copier cette fonction à la suite
de l'autre et adapter la ligne d'appel.

'---------------------------------
Set wss = CreateObject("WScript.Shell")

Msgbox Environ("LOCALAPPDATA")

Function Environ(VarName)
dim wss, env
Set wss = CreateObject("WScript.Shell")
Set env = wss.environment("process")
Environ = env(VarName)
If Environ = "" Then
Set env = wss.environment("system")
Environ = env(VarName)
End If
End Function
'---------------------------------




"Jacques93" a écrit dans le message de groupe de discussion :
#
Bonjour michdenis,

Que ce soit en VBS ou en VBA, je crois qu'il vaut mieux éviter
d'indiquer en dur 'X:Documents and SettingsNomUtilisateurApplication
Data...'

Sous W7 (en fait à partir de Vista), ce répertoire a changé
d'arborescence, et pour le profil TB il se trouve dans :

X:UsersNomUtilisateurAppDataRoamingThunderbirdProfiles

d'où ma préférence d'utiliser la variable d'environnement %AppData%
qui renvoie le bon chemin, quelque soit l'OS.

michdenis a écrit :
Voici la procédure du fichier .vbs

Évidemment au lieu du message, tu termines ce fichier
comme tu l'entends.

'-----------------------------------------
Dim Wsh, ObjNetwork, Origine, Usager, Temp
Dim objFSO, Rep, F

Set wsh = CreateObject( "WScript.Shell" )
Set objNetwork = CreateObject("WScript.Network")
usager = objNetwork.UserName
Origine = "C:Documents and Settings" & usager & "" & _
"Application DataThunderbirdProfiles"
Temp = Extraire(origine)

MsgBox Origine & temp & "prefs.js"

Function Extraire(Temp)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set Rep = objFSO.GetFolder(Temp)
For Each F In Rep.SubFolders
If InStr(1, F.Name, ".defaut",1) > 0 Then
Extraire = F.Name
Exit For
End If
Next
End Function
'-----------------------------------------




--

Cordialement,

Jacques.
Avatar
michdenis
Voici le vbscript complet permettant de supprimer
les fichiers qui n'ont pas été ouverts d'au moins 3 mois.

Au lieu d'utiliser Environ("USERNAME"), tu préfères
Environ("APPDATA") , tu n'as que 2 lignes à modifier !


ATTENTION : Ce script fonctionne. Assure-toi de ne pas
supprimer des fichiers sans avoir fait de sauvegarde.


'------------------------------------------
Dim Wsh, Origine, Usager, Temp
Dim objFSO, Rep, F, Repertoire

Set wsh = CreateObject( "WScript.Shell" )
usager = Environ("USERNAME")
Origine = "C:Documents and Settings" & usager & "" & _
"Application DataThunderbirdProfiles"

Temp = Extraire(Origine)
if Temp = "" Then
Msgbox "Répertoire non trouvé. Opération annulée."
end if
Msgbox origine & temp & "prefs.js"

Repertoire = origine & temp & ""

If MsgBox("Désirez-vous supprimer tous les fichiers qui " & _
"n'ont pas été ouverts depuis au moins 3 mois " & _
"dans ce répertoire ?" & Chr(10) & chr(13) & _
Chr(10) & chr(13) & """" & _
Repertoire & """",68,"Attention") = 6 Then
call Supprimer_Fichier_Plus_Vieux_Trois_Mois(Repertoire)End
if
Msgbox "Opération terminée.",,"Salut..."
'------------------------------------------
Function Extraire(Temp)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set Rep = objFSO.GetFolder(Temp)
For Each F In Rep.SubFolders
If InStr(1, F.Name, ".defaut",1) > 0 Then
Extraire = F.Name
Set objFSO = Nothing: Set Rep = Nothing: Set F = Nothing
Exit For
End If
Next
Set objFSO = Nothing: Set Rep = Nothing: Set F = Nothing
End Function
'------------------------------------------
Function Environ(VarName)
dim wss, env
Set wss = CreateObject("WScript.Shell")
Set env = wss.environment("process")
Environ = env(VarName)
If Environ = "" Then
Set env = wss.environment("system")
Environ = env(VarName)
End If
Set wss = Nothing: set Env = Nothing
End Function
'------------------------------------------
Sub Supprimer_Fichier_Plus_Vieux_Trois_Mois(Repertoire)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set Rep = objFSO.GetFolder(Repertoire)
For Each F In Rep.files
If DateDiff("m", F.DateLastAccessed, Now) > 3 then
F.delete
End If
Next
Set objFSO = Nothing: Set Rep = Nothing: Set F = Nothing
End Sub
'------------------------------------------





"michdenis" a écrit dans le message de groupe de discussion :
#
Voici la procédure du fichier .vbs

Évidemment au lieu du message, tu termines ce fichier
comme tu l'entends.

'-----------------------------------------
Dim Wsh, ObjNetwork, Origine, Usager, Temp
Dim objFSO, Rep, F

Set wsh = CreateObject( "WScript.Shell" )
Set objNetwork = CreateObject("WScript.Network")
usager = objNetwork.UserName
Origine = "C:Documents and Settings" & usager & "" & _
"Application DataThunderbirdProfiles"
Temp = Extraire(origine)

MsgBox Origine & temp & "prefs.js"

Function Extraire(Temp)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set Rep = objFSO.GetFolder(Temp)
For Each F In Rep.SubFolders
If InStr(1, F.Name, ".defaut",1) > 0 Then
Extraire = F.Name
Exit For
End If
Next
End Function
'-----------------------------------------



"Alain Lebayle" a écrit dans le message de groupe de
discussion : #
Bonsoir Michdenis,
Malheureusement, je n'ai pas réussi à faire fonctionner ta procédure,
mais en revanche j'ai parfaitement réussi à faire fonctionner celle de
Jacques93.
Encore une fois un grand merci à tous !!!
Michdenis, At, Daniel.C et Jacques93
Très bonne soirée
Alain

michdenis a écrit :
'Pour trouver le nom de l'usager, tu peux utiliser ceci dans ton vbscript
Set objNetwork = CreateObject("WScript.Network")
Usager = objNetwork.UserName

Origine = "C:Documents and Settings" & usager & "" & _
Application DataThunderbirdProfiles"

'Pour trouver le nom du répertoire : "ia02c5qy.default"
Temp = dire(origine) 'Fonction dire dans le bas de ton vbscript

'Reconstitution du chemin complet par concaténation
Origine = origine & Temp & "prefs.js"

'Le reste de ton code

'-----------------------------------------
Fonction Dire(Origine)
Dim objFSO, Rep, F, MyVar
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set Rep = objFSO.GetFolder(Origine)
For Each F In Rep.SubFolders
If InStr(1, F.Name, ".defaut", vbTextCompare) > 0 Then
MyVar = F.Name
Exit For
End If
Next
Set objFSO = Nothing: Set Rep = Nothing: Set F = Nothing
Dire = MyVar
End Function
'-----------------------------------------




Avatar
Alain Lebayle
Bonjour Michdenis,
Malgré de très nombreuses tentatives, ta procédure plante vraiment un
peu partout, notamment avec Environ username puis Appdata...
Pour la suppression des fichiers, il s'agit de fichiers dont l'extension
donne la date et qui n'ont pas été forcément ouverts.

En définitive, je reste sur cette procédure.
Je vous remercie tous beaucoup pour l'aide apportée sur cette procédure
qui m'apprend beaucoup de choses. ;-)
Alain

Dim wsh, fso
Dim ProfilesPath, fColl, f1
Dim Origine
Dim La_date
La_date = FormatDateTime(Now,1)


Set wsh = CreateObject( "WScript.Shell" )
set fso = CreateObject ("Scripting.FileSystemObject")

Set ProfilesPath = fso.GetFolder _
(wsh.ExpandEnvironmentStrings("%AppData%") & _
"ThunderbirdProfiles")

Set fColl = ProfilesPath.SubFolders
For Each f1 in fColl
If LCase(Right(f1.Name,8)) = ".default" then
Origine = ProfilesPath & "" & f1.Name & "" & "prefs.js"
End If
Next

'Pour vérifier si le dossier existe
if ( Fso.FolderExists( "C:PREFS.JS") ) then
'le dossier existe
else
'le dossier n'existe pas alors création
Fso.CreateFolder ("C:PREFS.JS")
end if

Copy Origine,"C:PREFS.JSprefs.js" & " du " & La_date

function copy(old_,new_)

Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CopyFile old_, new_,true
end function

Set fso = Nothing
Set wsh = Nothing



michdenis a écrit :
Voici le vbscript complet permettant de supprimer
les fichiers qui n'ont pas été ouverts d'au moins 3 mois.

Au lieu d'utiliser Environ("USERNAME"), tu préfères
Environ("APPDATA") , tu n'as que 2 lignes à modifier !


ATTENTION : Ce script fonctionne. Assure-toi de ne pas
supprimer des fichiers sans avoir fait de sauvegarde.


'------------------------------------------
Dim Wsh, Origine, Usager, Temp
Dim objFSO, Rep, F, Repertoire

Set wsh = CreateObject( "WScript.Shell" )
usager = Environ("USERNAME")
Origine = "C:Documents and Settings" & usager & "" & _
"Application DataThunderbirdProfiles"

Temp = Extraire(Origine)
if Temp = "" Then
Msgbox "Répertoire non trouvé. Opération annulée."
end if
Msgbox origine & temp & "prefs.js"

Repertoire = origine & temp & ""

If MsgBox("Désirez-vous supprimer tous les fichiers qui " & _
"n'ont pas été ouverts depuis au moins 3 mois " & _
"dans ce répertoire ?" & Chr(10) & chr(13) & _
Chr(10) & chr(13) & """" & _
Repertoire & """",68,"Attention") = 6 Then
call Supprimer_Fichier_Plus_Vieux_Trois_Mois(Repertoire)End
if
Msgbox "Opération terminée.",,"Salut..."
'------------------------------------------
Function Extraire(Temp)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set Rep = objFSO.GetFolder(Temp)
For Each F In Rep.SubFolders
If InStr(1, F.Name, ".defaut",1) > 0 Then
Extraire = F.Name
Set objFSO = Nothing: Set Rep = Nothing: Set F = Nothing
Exit For
End If
Next
Set objFSO = Nothing: Set Rep = Nothing: Set F = Nothing
End Function
'------------------------------------------
Function Environ(VarName)
dim wss, env
Set wss = CreateObject("WScript.Shell")
Set env = wss.environment("process")
Environ = env(VarName)
If Environ = "" Then
Set env = wss.environment("system")
Environ = env(VarName)
End If
Set wss = Nothing: set Env = Nothing
End Function
'------------------------------------------
Sub Supprimer_Fichier_Plus_Vieux_Trois_Mois(Repertoire)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set Rep = objFSO.GetFolder(Repertoire)
For Each F In Rep.files
If DateDiff("m", F.DateLastAccessed, Now) > 3 then
F.delete
End If
Next
Set objFSO = Nothing: Set Rep = Nothing: Set F = Nothing
End Sub
'------------------------------------------





"michdenis" a écrit dans le message de groupe de discussion :
#
Voici la procédure du fichier .vbs

Évidemment au lieu du message, tu termines ce fichier
comme tu l'entends.

'-----------------------------------------
Dim Wsh, ObjNetwork, Origine, Usager, Temp
Dim objFSO, Rep, F

Set wsh = CreateObject( "WScript.Shell" )
Set objNetwork = CreateObject("WScript.Network")
usager = objNetwork.UserName
Origine = "C:Documents and Settings" & usager & "" & _
"Application DataThunderbirdProfiles"
Temp = Extraire(origine)

MsgBox Origine & temp & "prefs.js"

Function Extraire(Temp)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set Rep = objFSO.GetFolder(Temp)
For Each F In Rep.SubFolders
If InStr(1, F.Name, ".defaut",1) > 0 Then
Extraire = F.Name
Exit For
End If
Next
End Function
'-----------------------------------------



"Alain Lebayle" a écrit dans le message de groupe de
discussion : #
Bonsoir Michdenis,
Malheureusement, je n'ai pas réussi à faire fonctionner ta procédure,
mais en revanche j'ai parfaitement réussi à faire fonctionner celle de
Jacques93.
Encore une fois un grand merci à tous !!!
Michdenis, At, Daniel.C et Jacques93
Très bonne soirée
Alain

michdenis a écrit :
'Pour trouver le nom de l'usager, tu peux utiliser ceci dans ton vbscript
Set objNetwork = CreateObject("WScript.Network")
Usager = objNetwork.UserName

Origine = "C:Documents and Settings" & usager & "" & _
Application DataThunderbirdProfiles"

'Pour trouver le nom du répertoire : "ia02c5qy.default"
Temp = dire(origine) 'Fonction dire dans le bas de ton vbscript

'Reconstitution du chemin complet par concaténation
Origine = origine & Temp & "prefs.js"

'Le reste de ton code

'-----------------------------------------
Fonction Dire(Origine)
Dim objFSO, Rep, F, MyVar
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set Rep = objFSO.GetFolder(Origine)
For Each F In Rep.SubFolders
If InStr(1, F.Name, ".defaut", vbTextCompare) > 0 Then
MyVar = F.Name
Exit For
End If
Next
Set objFSO = Nothing: Set Rep = Nothing: Set F = Nothing
Dire = MyVar
End Function
'-----------------------------------------




1 2 3