Войти

Показать полную графическую версию : [решено] Определить переменную


saintman
29-05-2014, 17:19
ДВС товарищи!
Хочется прикрутить к политике Логоффа юзера с терминальника скриптик на очистку кэша Мозиллы.
Нашел такое вот решение скриптовое:

On Error Resume Next
intDays = Int(Wscript.arguments.Item(0))
strFldr = Wscript.arguments.Item(1)

Set objFSO = CreateObject("Scripting.FileSystemObject")
DelOld strFldr, intDays

Function DelOld(sFldr, iDays)
On Error Resume Next
Dim oD, cF, cD, oI

Set oD = objFSO.GetFolder(sFldr)
Set cF = oD.Files
Set cD = oD.SubFolders

For Each oI In cF
If DateDiff("d", oI.DateLastModified, Now) > iDays Then
WScript.Echo oI.Path
oI.Attributes = 0
oI.Delete
End If
Next

For Each oI In cD
DelOld oI.Path, iDays
If oI.Size = 0 Then
oI.Attributes = 0
oI.Delete
End If
Next
End Function

Это скрипт VBS. Запускается он должен с помощью батника:

cscript //Nologo MyCleanUp.VBS 14 %localappdata%\Mozilla\Firefox\Profiles\*******\Cache

Вот затык у меня с тем, что указывать на месте звездочек, ведь профиль пользователя в Мозилле создается с рандомным названием, как его прикрутить, не понимаю...

Попробовал на место звездочек поставить - *.default - вроде как по маске должен пойти во все папки и очистить..но нет..и лог пустой

Sianur
29-05-2014, 17:27
Может, путь к профилю можно взять из profiles.ini?

saintman
29-05-2014, 17:34
Увидел profiles.ini в Roaming папке Мозиллы, только как теперь вытаскивать из него имя профиля?
Мозилла кстати последняя на данный момент, 29.

firstarey
30-05-2014, 06:19
Увидел profiles.ini в Roaming папке Мозиллы »
приложите данный файл или его часть, в которой присутствует имя профиля.
не у всех же Mozilla :)

saintman
30-05-2014, 09:01
Цитата saintman:
Увидел profiles.ini в Roaming папке Мозиллы »
приложите данный файл или его часть, в которой присутствует имя профиля.
не у всех же Mozilla »

не подумал=)

[General]
StartWithLastProfile=1

[Profile0]
Name=default
IsRelative=1
Path=Profiles/ao9spfmb.default

Лежит он тут - C:\Users\UserName\AppData\Roaming\Mozilla\Firefox

gora
30-05-2014, 10:55
затык у меня с тем, что указывать на месте звездочек »
For /F "tokens=* delims=" %%a In ('Dir /b /s "%localappdata%\Mozilla\Firefox\Profiles\Cache" 2^>Nul') Do Set prf=%%a
cscript //Nologo MyCleanUp.VBS 14 %prf%

El Sanchez
30-05-2014, 11:39
gora, хех, не знал, что с ключом /s команда dir может возвращать результат по такой маске, как неполный путь.
P.S. %prf% в кавычки.

saintman
30-05-2014, 11:45
то есть делаю такой батник и привязываю его к логофф скрипту?

For /F "tokens=* delims=" %%a In ('Dir /b /s "%localappdata%\Mozilla\Firefox\Profiles\Cache" 2^>Nul') Do Set prf=%%a
cscript //Nologo MyCleanUp.VBS 1 "%prf%"

PS "%prf%" такие кавычки или одинарные?

El Sanchez
30-05-2014, 11:53
"%prf%" такие кавычки или одинарные? »
saintman, да, двойные. Кавычки нужны, чтобы путь с пробелами считался как один параметр, а не несколько.

saintman
30-05-2014, 12:29
saintman, да, двойные. Кавычки нужны, чтобы путь с пробелами считался как один параметр, а не несколько. »

ок, спасибо. буду тестить, потом отпишусь =)

firstarey
02-06-2014, 07:08
saintman, вариант с чтением файла profiles.ini:
set Mozilla_profiles=D:\script\profiles.ini
for /F "Tokens=2* Delims=/" %%n in ('find "Path" "%Mozilla_profiles%"') do set prf=%%n
cscript //Nologo MyCleanUp.VBS 14 %localappdata%\Mozilla\Firefox\Profiles\%prf%\Cache

первую строку соответственно измените

saintman
02-06-2014, 10:35
firstarey, сработало! Благодарю :clapping:

set Mozilla_profiles=%appdata%\Mozilla\Firefox\profiles.ini
for /F "Tokens=2* Delims=/" %%n in ('find "Path" "%Mozilla_profiles%"') do set prf=%%n
cscript //Nologo Clean.VBS 1 %localappdata%\Mozilla\Firefox\Profiles\%prf%\Cache >logcl.log




© OSzone.net 2001-2012