🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: alt.pl.comp.os.windowsxp
Article #119727

Re: [BAT] Usuwanie tylko starych plikow

#119727
From: Piotr Kuliński
Date: Wed, 21 May 2008 17:56
71 lines
2999 bytes
Piotr Kuliński pisze:
> Tomasz pisze:
>> Witam
>>
>> Potrzebuję plik wsadowy, który usuwałby wszystkie pliki *.zip oraz 
>> *.cbk z danego katalogu oprócz tych plików, które są z dnia dzisiejszego.
>>
>> Stworzyłem na razie coś takiego:
>>
>> set rok=%date:~0,4%
>> set mies=%date:~5,2%
>> set dz=%date:~8,2%
>> xcopy *.zip "temp\" /F /Y /D:%mies%-%dz%-%rok%
>> xcopy *.cbk "temp\" /F /Y /D:%mies%-%dz%-%rok%
>> del *.zip
>> del *.cbk
>> move temp\*.* ".\"
>> rmdir /s /q temp\
>>
>>
>>
>> Metoda ta polega na kopiowaniu do katalogu tymczasowego (temp) plików 
>> z dzisiejszą datą, kasowaniu wszystkiego z katalogu bieżącego i 
>> przenoszeniu z powrotem tego co pozostało w katalogu tymczasowym.
>>
>> Ponieważ pliki są bardzo duże to wszystko dosyć długo trwa. Znacie 
>> może jakiś szybszy sposób?
>>
> dir *.tmp | findstr ^[%DATE%] > old_files.txt
> 
> to na początek, później ściągnij sed.exe w celu przetworzenia pliku i 
> wyciągnięcia nazw plików, albo użyj polecenia for z cięciem po kolumnach
> 

'Tu pełniejszy skrypt

' Kuliński Piotr, kasowanie plików na lokalnym komputerze z określonego 
folderu
' gdzie data jest mniejsza od aktualnej

strComputer = "."
strPath="d:\temp"

Set objWMIService = 
GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & 
"\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_UTCTime")
For Each objItem in colItems
 
dt_del=objItem.Year&"-"&right("0"&objItem.Month,2)&"-"&right("0"&objItem.Day,2)
Next


Set objFSO = CreateObject("Scripting.FileSystemObject")

Set objShell = CreateObject ("Shell.Application")
Set objFolder = objShell.Namespace (strPath)
Set objFSO = CreateObject("Scripting.FileSystemObject")

For Each strFileName in objFolder.Items
     if (objFolder.GetDetailsOf (strFileName, 4) < (dt_del&" 00:00")) then
        wscript.echo objFolder.GetDetailsOf (strFileName, 4)&" --> " & 
strPath&"\"&strFileName
        objFSO.DeleteFile(strPath&"\"&strFileName)
     end if
Next


-- 
pozdrawiam
Piotr Kuliński
Technical Details
Message-ID: <g11nom$83d$1@inews.gazeta.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
References: <g10hpf$1sk$1@news2.task.gda.pl> <g11iti$42a$1@inews.gazeta.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: Piotr Kuliński <piotr_kulinski@wpw.pl>
Newsgroups: alt.pl.comp.os.windowsxp
Subject: Re: [BAT] Usuwanie tylko starych plikow
Date: Wed, 21 May 2008 19:56:36 +0200
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 71
Message-ID: <g11nom$83d$1@inews.gazeta.pl>
References: <g10hpf$1sk$1@news2.task.gda.pl> <g11iti$42a$1@inews.gazeta.pl>
NNTP-Posting-Host: staticline23884.toya.net.pl
Mime-Version: 1.0
X-Trace: inews.gazeta.pl 1211392598 8301 217.113.229.146 (21 May 2008 17:56:38 GMT)
X-Complaints-To: usenet@agora.pl
NNTP-Posting-Date: Wed, 21 May 2008 17:56:38 +0000 (UTC)
X-User: piotr_kulinski
In-Reply-To: <g11iti$42a$1@inews.gazeta.pl>
User-Agent: Thunderbird 2.0.0.14 (Windows/20080421)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit