Показать полную графическую версию : [решено] VBS скрипт удаления конкретного файла
qwer8383
28-02-2011, 12:24
Здравствуйте! Нужна помощь в написании скрипта на VBS, который удалял бы конкретно указанный файл (расположенный на сетевом ресурсе), если только он старше определенного времени. Помогите кто чем сможет.
megaloman
28-02-2011, 16:04
FName = "\\Server_NT\{Общая}\__Delete\1.doc" ' Полное имя файла
DateDelete = DateSerial(2011, 2, 23) ' Дата старше которой файл удаляется (год, мес, день)
Set FSO = CreateObject("Scripting.FileSystemObject")
If FSO.FileExists(FName) Then
If FSO.GetFile(FName).DateLastModified < DateDelete Then FSO.DeleteFile FName, True
End If
qwer8383
01-03-2011, 09:49
megaloman, спасибо большое за подсказку. Мне надо было вот так:
Set FSO = CreateObject("Scripting.FileSystemObject")
Set objService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")
If Err.Number <> 0 Then
WScript.Echo Err.Number & ": " & Err.Description
WScript.Quit
End If
For Each objOS In objService.ExecQuery("SELECT * FROM Win32_OperatingSystem")
Exit For
Next
Dim FSO, file, fileName
'имя компьютера
fileName = "\\terminal-srv\Inventory$\" & objOS.CSName & ".xml"
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WshShell = CreateObject("WScript.Shell")
DateDelete = DateAdd("d", -30, date) ' Дата старше которой файл удаляется (год, мес, день)
If FSO.FileExists(fileName) Then
If FSO.GetFile(fileName).DateLastModified < DateDelete Then FSO.DeleteFile fileName, True
End If
if Not FSO.FileExists(fileName) Then
RetCode = WshShell.Run("\\terminal-srv\Inventory$\tniaudit.exe /scripted", 1, True)
End if
А что делать если имя файла постоянно меняется, скажем имя файла это дата его создания, как тогда удалять такие файлы?
А лучше скажем сначала проверять наличие файлов?
Подскажите ОЧЕНЬ НАДО!!!
балгодарю проблему решил намного проще
сначала проверям существует ли сегоднящний бекап, если да удаляем бекапы старее чем три дня, если нетю. отправляем письмо об отсутствии файла и ничего не делаем!
@Echo Off
net use z: \\192.168.3.25\backup\exc01
For /F "Tokens=1 Delims=.+-" %%i In ('WMIC OS Get LocalDateTime^|Find "."') Do Set DateTime=%%i
If Exist Z:\%DateTime:~6,-6%.%DateTime:~4,-8%.%DateTime:~0,-10%exc01.bkf (
Forfiles -p z:\ -m *.* -d -3 -c "cmd /c del /q @path"
) Else (
c:\blat\blat.exe -server 192.168.3.5 -f 1c@nevastar.ru -u office\1c -pw 6472807 -to it@nevastar.ru -subject "TEST" -body "ERROR" "
)
net use z: /delete
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.