Article View: alt.pl.comp.os.windowsxp
Article #119727Re: [BAT] Usuwanie tylko starych plikow
From: Piotr Kuliński
Date: Wed, 21 May 2008 17:56
Date: Wed, 21 May 2008 17:56
71 lines
2999 bytes
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-mailReferences:
<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