Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Encore un problème de syntaxe

17 réponses
Avatar
Alain Lebayle
Bonjour,
J'ai un problème (encore une fois ;-)) d'écriture, j'ai une variable
Origine, mais le pb est que le dossier : ia02c5qy.default change d'un PC
à l'autre, mais il reste .default

Origine = "C:\Documents and Settings\l'utilisateur\Application
Data\Thunderbird\Profiles\ia02c5qy.default\prefs.js"

J'essaie quelque chose comme cela, mais cela ne fonctionne pas.

Origine = "C:\Documents and Settings\l'utilisateur\Application
Data\Thunderbird\Profiles\" & "*" &".default\prefs.js"

Je vous remercie
Alain

10 réponses

1 2
Avatar
Daniel.C
Bonjour.
Essaie :
Rep = Dir("C:Documents and Settingsl'utilisateurApplication
DataThunderbirdProfiles*default", vbDirectory)
Fich = "C:Documents and Settingsl'utilisateurApplication
DataThunderbirdProfiles" & _
Rep & "prefs.js"
Daniel

Bonjour,
J'ai un problème (encore une fois ;-)) d'écriture, j'ai une variable Origine,
mais le pb est que le dossier : ia02c5qy.default change d'un PC à l'autre,
mais il reste .default

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

J'essaie quelque chose comme cela, mais cela ne fonctionne pas.

Origine = "C:Documents and Settingsl'utilisateurApplication
DataThunderbirdProfiles" & "*" &".defaultprefs.js"

Je vous remercie
Alain
Avatar
michdenis
Bonjour,

Si dans le répertoire suivant, tu n'as qu'un répertoire ayant une extension
.default comme sous-répertoire tu peux utiliser ceci :

Dim X as string
Dim Temp as string
dim Origine As String

Origine = "C:Documents and Settingsl'utilisateur" & -
"Application DataThunderbirdProfiles"

Temp = "C:Documents and Settingsl'utilisateur" & -
"Application DataThunderbirdProfiles*.Defaut"

X = Dir(Origine, , vbDirectory)

Origine = Origine & Temp & "prefs.js"





"Alain Lebayle" a écrit dans le message de groupe de
discussion :
Bonjour,
J'ai un problème (encore une fois ;-)) d'écriture, j'ai une variable
Origine, mais le pb est que le dossier : ia02c5qy.default change d'un PC
à l'autre, mais il reste .default

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

J'essaie quelque chose comme cela, mais cela ne fonctionne pas.

Origine = "C:Documents and Settingsl'utilisateurApplication
DataThunderbirdProfiles" & "*" &".defaultprefs.js"

Je vous remercie
Alain
Avatar
LE TROLL
Bonjour,

Que veux-tu faire ?

Car en faisant
dim chemin as string
chemin = "c:..."
MsgBox chemins = "c:..."
Et après, tu veux faire quoi avec ça, je ne comprends pas ?

Si tu veux afficher les fichier, ce serait dans une boucle avec "DIR"

Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"Alain Lebayle" a écrit dans le message de
news:
Bonjour,
J'ai un problème (encore une fois ;-)) d'écriture, j'ai une variable
Origine, mais le pb est que le dossier : ia02c5qy.default change d'un PC à
l'autre, mais il reste .default

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

J'essaie quelque chose comme cela, mais cela ne fonctionne pas.

Origine = "C:Documents and Settingsl'utilisateurApplication
DataThunderbirdProfiles" & "*" &".defaultprefs.js"

Je vous remercie
Alain
Avatar
Alain Lebayle
Bonsoir Daniel et encore merci, mais je précise que c'est un VBS,
Je teste cela demain au travail, et te tiens au courant demain soir
Alain

Daniel.C a écrit :
Bonjour.
Essaie :
Rep = Dir("C:Documents and Settingsl'utilisateurApplication
DataThunderbirdProfiles*default", vbDirectory)
Fich = "C:Documents and Settingsl'utilisateurApplication
DataThunderbirdProfiles" & _
Rep & "prefs.js"
Daniel

Bonjour,
J'ai un problème (encore une fois ;-)) d'écriture, j'ai une variable
Origine, mais le pb est que le dossier : ia02c5qy.default change d'un
PC à l'autre, mais il reste .default

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

J'essaie quelque chose comme cela, mais cela ne fonctionne pas.

Origine = "C:Documents and Settingsl'utilisateurApplication
DataThunderbirdProfiles" & "*" &".defaultprefs.js"

Je vous remercie
Alain




Avatar
Alain Lebayle
Bonsoir Daniel
Je te remercie beaucoup pour l'aide apportée.
Cela ne fonctionne pas, je précise que c'est un fichier VBS
Très bonne soirée
Alain

Alain Lebayle a écrit :
Bonsoir Daniel et encore merci, mais je précise que c'est un VBS,
Je teste cela demain au travail, et te tiens au courant demain soir
Alain

Daniel.C a écrit :
Bonjour.
Essaie :
Rep = Dir("C:Documents and Settingsl'utilisateurApplication
DataThunderbirdProfiles*default", vbDirectory)
Fich = "C:Documents and Settingsl'utilisateurApplication
DataThunderbirdProfiles" & _
Rep & "prefs.js"
Daniel

Bonjour,
J'ai un problème (encore une fois ;-)) d'écriture, j'ai une variable
Origine, mais le pb est que le dossier : ia02c5qy.default change d'un
PC à l'autre, mais il reste .default

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

J'essaie quelque chose comme cela, mais cela ne fonctionne pas.

Origine = "C:Documents and Settingsl'utilisateurApplication
DataThunderbirdProfiles" & "*" &".defaultprefs.js"

Je vous remercie
Alain




Avatar
Jacques93
Bonjour

Je répéte ma réponse faites ce soir dans le fil 'Trouver le chemin' :

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 :
Bonjour,
J'ai un problème (encore une fois ;-)) d'écriture, j'ai une variable
Origine, mais le pb est que le dossier : ia02c5qy.default change d'un PC
à l'autre, mais il reste .default

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

J'essaie quelque chose comme cela, mais cela ne fonctionne pas.

Origine = "C:Documents and Settingsl'utilisateurApplication
DataThunderbirdProfiles" & "*" &".defaultprefs.js"

Je vous remercie
Alain




--

Cordialement,

Jacques.
Avatar
Alain Lebayle
Bonsoir,
Après test "grandeur nature", ta procédure fonctionne à merveille !!!
C'est parfait quel talent !!!
Puis-je demander une p'titte dernière ;-)
Est-il possible de supprimer du dossier, tous les fichiers antérieur à 3
mois ?
Je te remercie beaucoup
Alain


Jacques93 a écrit :
Bonjour

Je répéte ma réponse faites ce soir dans le fil 'Trouver le chemin' :

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 :
Bonjour,
J'ai un problème (encore une fois ;-)) d'écriture, j'ai une variable
Origine, mais le pb est que le dossier : ia02c5qy.default change d'un
PC à l'autre, mais il reste .default

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

J'essaie quelque chose comme cela, mais cela ne fonctionne pas.

Origine = "C:Documents and Settingsl'utilisateurApplication
DataThunderbirdProfiles" & "*" &".defaultprefs.js"

Je vous remercie
Alain




Avatar
Jacques93
Oui c'est certainement possible, mais il faudrait préciser si on se base
sur la date de création/modification/accès du fichier ou d'une date
contenu dans son nom, et dans ce cas préciser la structure du nom.

Et dans quel répertoire travaille t-on ?

Une Piste : DateDiff devrait être utile :

If DateDiff("m", DateFichier, Now) > 3 then
fso.DeleteFile ...
...
End If

Et là DateDiff VBS ou VBA c'est pareil :-)

Alain Lebayle a écrit :
Bonsoir,
Après test "grandeur nature", ta procédure fonctionne à merveille !!!
C'est parfait quel talent !!!
Puis-je demander une p'titte dernière ;-)
Est-il possible de supprimer du dossier, tous les fichiers antérieur à 3
mois ?
Je te remercie beaucoup
Alain





--

Cordialement,

Jacques.
Avatar
Alain Lebayle
Bonsoir Jacques93

1 - En fait une fois que les fichiers sont copiés, il y a une extension
qui est une date, ils se trouvent dans le dossier C:PREFS.JS, je
souhaite que les fichiers de plus de 3 mois puissent être supprimés
automatiquement ceci afin d'alléger le dossier. Merci pour la piste,
mais malgré mes essais, je n'y arrive pas.

2 - Ta proc fonctionne admirablement bien, mais est-il possible d'avoir
également la version avec "micro" à la place de Appdata à savoir :

"C:Documents and SettingsmicroApplication
DataThunderbirdProfiles*.defaultprefs.js"

Je t'assure que j'ai vraiment passé un temps fou à essayer de décripter
la procédure afin de la modifier mais y'a pas moyen.

Voilà la procédure définitive :

Merci
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






Jacques93 a écrit :
Oui c'est certainement possible, mais il faudrait préciser si on se base
sur la date de création/modification/accès du fichier ou d'une date
contenu dans son nom, et dans ce cas préciser la structure du nom.

Et dans quel répertoire travaille t-on ?

Une Piste : DateDiff devrait être utile :

If DateDiff("m", DateFichier, Now) > 3 then
fso.DeleteFile ...
...
End If

Et là DateDiff VBS ou VBA c'est pareil :-)

Alain Lebayle a écrit :
Bonsoir,
Après test "grandeur nature", ta procédure fonctionne à merveille !!!
C'est parfait quel talent !!!
Puis-je demander une p'titte dernière ;-)
Est-il possible de supprimer du dossier, tous les fichiers antérieur à
3 mois ?
Je te remercie beaucoup
Alain





Avatar
Jacques93
1 - Le format de date que tu intègre dans le nom de ton fichier n'est
pas adapté :

La_date = FormatDateTime(Now, 1)

génère, pour aujourd'hui : dimanche 11 avril 2010
ce n'est pas exploitable par DateDiff. Il vaudrait mieux utiliser

La_date = FormatDateTime(Now, 2)

qui génèrera la date sous la forme : 11/04/2010
Le nom de ton fichier sera donc : "prefs.js du 11/04/2010"
Il te suffira ensuite dans la procédure de suppression de récupérer
cette date avec :

dt = Mid (NomDuFichier, 13)
If DateDiff("m", dt, now) > 3 Then
fso.DeleteFile ...
...
End If

Et pour parcourir le répertoire C:PREFS.JS, la procédure que t'as
indiqué michdenis dans l'autre fil :

<Citation michdenis>

C ) Tu voulais savoir comment arriver à supprimer des fichiers à
partir d'un certain critère que tu avais mal défini dans ta
question initiale. Je t'ai donné un exemple. Cette procédure
supprime tous les fichiers du chemin du répertoire passé en
paramètre s'il s'est écoulé plus de 3 mois.
'-------------------------------------------
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

</Citation michdenis>

est parfaitement adaptée, en remplaçant F.DateLastAccessed par la
variable dt :

For Each F In Rep.files
dt = Mid (F.Name, 13)
If IsDate(dt) Then
If DateDiff("m", dt, Now) > 3 then
F.delete
End If
End If
Next

NB : quand on supprime avec l'objet 'FileSystemObject' la méthode est
'DeleteFile' (pour la différencier de DeleteFolder), si c'est sur un
objet 'File' la méthode est 'Delete', d'où les deux types de codage
possibles, mais qui aboutissent au même résultat.


--------------------------------------------------------------------

2 - > "C:Documents and SettingsmicroApplication
DataThunderbirdProfiles*.defaultprefs.js"



Je ne comprends pas ce que tu désires. Ce répertoire, s'il existe
supposerait l'existence d'un utilisateur nommé 'micro' ?

Alain Lebayle a écrit :
Bonsoir Jacques93

1 - En fait une fois que les fichiers sont copiés, il y a une extension
qui est une date, ils se trouvent dans le dossier C:PREFS.JS, je
souhaite que les fichiers de plus de 3 mois puissent être supprimés
automatiquement ceci afin d'alléger le dossier. Merci pour la piste,
mais malgré mes essais, je n'y arrive pas.

2 - Ta proc fonctionne admirablement bien, mais est-il possible d'avoir
également la version avec "micro" à la place de Appdata à savoir :

"C:Documents and SettingsmicroApplication
DataThunderbirdProfiles*.defaultprefs.js"

Je t'assure que j'ai vraiment passé un temps fou à essayer de décripter
la procédure afin de la modifier mais y'a pas moyen.

Voilà la procédure définitive :

Merci
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





--

Cordialement,

Jacques.
1 2