Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
zero55
Зарегистрирован: 24.08.2005 Сообщения: 74
|
Добавлено: Ср Авг 24 2005 22:03 Заголовок сообщения: вопрос по скриптам VBS |
|
|
Есть задача, по расписанию чистить временные папки пользователей.
нашел следующий скрипт
Function GetFolder(sFOLDER)
On Error Resume Next
Set GetFolder = FSO.GetFolder(sFOLDER)
If Err.Number <> 0 Then
WScript.Echo "Error connecting to folder: " & sFOLDER & _
vbLf & "[" & Err.Number & "] " & Err.Description
WScript.Quit Err.Number
End If
On Error GoTo 0
End Function
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Shell = CreateObject("Wscript.Shell")
sDIR = "C:\Temp"
Set objDIR = GetFolder(sDIR)
For Each efile in objDIR.Files
fEXT = FSO.GetExtensionName(efile.Path)
If LCase(fEXT) = LCase("lnk") Then
Set Shortcut = Shell.CreateShortcut(efile)
If Not FSO.FileExists(Shortcut.TargetPath) Then
If Not FSO.FolderExists(Shortcut.TargetPath) Then
efile.Delete
End If
End If
End If
Next
проблема в следущем - как его прикрутить к моей задаче, или есть другое решение?
Спасибо.. |
|
Вернуться к началу |
|
|
4u3u
Зарегистрирован: 24.01.2003 Сообщения: 997 Откуда: Moscow
|
Добавлено: Ср Авг 24 2005 23:28 Заголовок сообщения: |
|
|
Скрипт, который ты привел, удаляет шорткаты, указывающие на несуществующие файлы. Вряд ли он тебе поможет. В твоем случае достаточно будет простого батника, добавленного в качестве логон скрипта. Вроде этого:
Код: | @echo off
set folder=%temp%
for /f "delims=" %%i in ('dir /b /ad "%folder%"') do (echo rd /s /q "%folder%\%%i")
echo del /q /f "%folder%\*.*" |
Он удаляет все содержимое временной папки пользователя (путь хранится в переменной окружения %temp%). Чтобы скрипт действительно что-то удалял, убери слово "echo" в двух строках.
Если нужно очищать какие-то еще папки, повтори в скрипте команды, подставив вместо %temp% путь к нужной папке.
Вообще, будь осторожен с удалением в скриптах. Ошибка здесь может привести к потере нужных файлов и неработоспособности системы. |
|
Вернуться к началу |
|
|
zero55
Зарегистрирован: 24.08.2005 Сообщения: 74
|
Добавлено: Ср Авг 24 2005 23:34 Заголовок сообщения: |
|
|
спасибо, проверю сегодня. |
|
Вернуться к началу |
|
|
zero55
Зарегистрирован: 24.08.2005 Сообщения: 74
|
Добавлено: Ср Авг 24 2005 23:48 Заголовок сообщения: спасибо |
|
|
Заработало вот в таком виде
@echo off
set folder=%USERPROFILE%\Local Settings\Temp
for /f "delims=" %%i in ('dir /b /ad "%folder%"') do (rd /s /q "%folder%\%%i")
del /q /f /s "%folder%\*.*" |
|
Вернуться к началу |
|
|
|