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?
--
Pozdrawiam
Tomasz
Pewnie najwięcej czasu trwa kopiowanie plików do TEMP. Zachowując obecny
schemat można zamienić "xcopy" na "move".
W tym przypadku następuje tylko modyfikacja informacji o położeniu pliku a
nie wykonanie jego fizycznej kopii.
--
Chopin
"Gdynia Moje Miasto"
staw...@wUpE.pEEl
> Pewnie najwięcej czasu trwa kopiowanie plików do TEMP. Zachowując obecny
> schemat można zamienić "xcopy" na "move".
> W tym przypadku następuje tylko modyfikacja informacji o położeniu pliku a
> nie wykonanie jego fizycznej kopii.
Tak, 99% czasu zajmuje "xcopy".
Niestety polecenie "move" nie ma parametrów umożliwiających przesuwanie
plików o określonej dacie - stąd te moje kombinacje...
--
Pozdrawiam
Tomasz
Total Commander - zaawansowane wyszukiwanie
--
TomaSz.
http://www.kociezycie.net
Lubię Total Commandera, ale nie chce mi się tego codziennie robić ręcznie :)
Wszystkie dotychczasowe czynności zostały już zautomatyzowane dzięki plikom
BAT - pozostało już tylko to usuwanie...
--
Pozdrawiam
Tomasz
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
--
pozdrawiam
piotr
> 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
http://sourceforge.net/project/showfiles.php?group_id=9328
Może to pomoże...
--
piecia aka dracorp
'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
Radzę zostawić prehistorycznego bata i zainteresować się PowerShellem.
Omawianą czynność można zrobić w jednej linijce:
ls *.zip, *.cbk | where-object {$_.lastwritetime -lt (get-date).date} |
foreach {rm $_}
--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i aktualności ze świata Outlook Express: grzegorz.net/oe
Uptime: 7 days, 7 hours, 4 minutes and 24 seconds
Hej
Do czego służy ta część kodu?:
'-----------
Set objWMIService = ...
Set colItems = ...
For Each objItem in colItems
dt_del=objItem.Year&"-"&right("0"&objItem.Month,2)&"-"&right("0"&objItem.Day,2)
Next
'-----------
--
Pozdrawiam
-Tomek-
Stary BAT ma tą zaletę, że nie trzeba go nigdzie instalować ;-)
--
Pozdrawiam
-Tomek-
> Stary BAT ma tą zaletę, że nie trzeba go nigdzie instalować ;-)
Zaleta używania starego programu :)
--
piecia aka dracorp
Jedna zaleta i tysiące wad :)
--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i aktualności ze świata Outlook Express: grzegorz.net/oe
Uptime: 1 day, 15 hours, 54 minutes and 30 seconds
> --
> Grzegorz Niemirowski
> http://www.grzegorz.net/
Ty jesteś autorem strony grzegorz.net?
Korzystałem z niej wiele razy! Mało jest stron poświęconych OE. Twoja dużo
wnosi :)
--
Pozdrawiam
Tomasz
http://www.shitsoft.net/
Tak, to ja :) Cieszę się, że się komuś przydała :)
--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i aktualności ze świata Outlook Express: grzegorz.net/oe
Uptime: 3 days, 14 hours, 44 minutes and 31 seconds
tak na szybko napisałem sformatowanie aktualnej daty
może znasz jakąś metodę aby pobrać odrazu sformatowaną date, ja się nei
zagłębiałem
--
pozdrawiam, GG i SkyPe w X-nagłówku posta, e-mail: zmień wpw na wp
piotr
> Tomasz <wyt...@wp.pl> napisał(a):
>> Stary BAT ma tą zaletę, że nie trzeba go nigdzie instalować ;-)
>
> Jedna zaleta i tysiące wad :)
może i tysiące wad, ale też duża prostota
PowerShell strasznie zagmatwany - tak z ciekawości dlaczego nie jest
dorzucony w SP2, przecież implementuje vbscript, obsługuje WMI i ma
wszystko co stary BPL?
brakuje czegoś prostego i szybiego takie coś ala bash lu sh
ale do taki podstawowych operacji...
wystarczy zupełnie stary BPL i Windows Resource Kid Tools
Gdy wpiszę: Msgbox Date
To wyświetla mi się komunikat z datą sformatowaną.
Poza tym zamiast "objItem.Month", można użyć "Month(Date)". To skróci ilość
kodu, bo nie będzie potrzebne tworzenie dodatkowych obiektów :)
--
Pozdrawiam
-Tomek-
Przecież PowerShell jest prosty, widać to bardzo dobrze na omawianym
przykładzie. Ilość kodu jest o wiele mniejsza i jest on bardziej intuicyjny.
A z basha przecież PS dużo zapożyczył, podobnie jak z perla. Nie wiem o co
chodzi z SP2. SP2 do Windows XP został wydany przed premierą PS, poza tym z
reguły SP nie wnoszą nowego oprogramowania. Nie wiem co to jest BPL.
--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i aktualności ze świata Outlook Express: grzegorz.net/oe
Uptime: 0 days, 0 hours, 3 minutes and 48 seconds
> Piotr Kulinski <piotr_k...@wpw.pl> napisał(a):
>> może i tysiące wad, ale też duża prostota
>> PowerShell strasznie zagmatwany - tak z ciekawości dlaczego nie jest
>> dorzucony w SP2, przecież implementuje vbscript, obsługuje WMI i ma
>> wszystko co stary BPL?
>> brakuje czegoś prostego i szybiego takie coś ala bash lu sh
>> ale do taki podstawowych operacji...
>> wystarczy zupełnie stary BPL i Windows Resource Kid Tools
>
> Przecież PowerShell jest prosty, widać to bardzo dobrze na omawianym
> przykładzie. Ilość kodu jest o wiele mniejsza i jest on bardziej intuicyjny.
> A z basha przecież PS dużo zapożyczył, podobnie jak z perla. Nie wiem o co
> chodzi z SP2. SP2 do Windows XP został wydany przed premierą PS, poza tym z
> reguły SP nie wnoszą nowego oprogramowania. Nie wiem co to jest BPL.
Co do prostoty to rzecz względna.
BPL (Batch Programming Language) zawsze jest zaimplementowany, choćby w
Vista. Nie sprawdzałem czy PS też jest w Viście i czy jest on już
zintegrowany czy trzeba doinstalowywać.
Co do integracji s SP2/SP3 to się zgadzam.