Skulle behöva hjälp med en batfil som tar bort filer ur en spec mapp där filerna är äldre än 30 dagar Hej, Att del-kommandot inte klarar av att ta bort efter datum spelar ingen roll, det känns som att man löser det via en for-loop. Om det sen går att att ta reda på datumet och så vidare har jag däremot ingen aning om. Hittat efter några sekunders googlande: Bat-fil
Tack på förhandSv: Bat-fil
Jag tror inte det går med mindre än att man gör ett program och lämpliga API-funktioner.
DEL-komandot har ingen switch för datum.
Gå ut i kommandotolken "Kör-CMD" om du har XP och skriv "HELP DEL" så får du en lista på hur det kan användas.
/MartinSv:Bat-fil
/ThomasSv: Bat-fil
http://www.experts-exchange.com/Operating_Systems/MSDOS/Q_21721488.html på ExpertsExchange
Följande är innehållet i din batfil och används: batfil.bat sökväg_till_filer datum(YYYYMMDD)
<code>
@echo off
setlocal
set cutOff=%~2
set workDir=%~1
if "%1"=="" set workDir=.
if not "%cutOff%"=="" goto START
for /f "tokens=2-4 delims=/ " %%a in ('date /t') do (
set mm=%%a
set dd=%%b
set yyyy=%%c
)
set /a mm=1%mm% - 101
if /i %mm% LSS 1 set /a mm=12&set /a yyyy-=1
if /i %mm% LSS 10 set mm=0%mm%
set cutOff=%yyyy%%mm%%dd%
:START
pushd.
cd /D "%workDir%"
for /f "delims=" %%a in ('dir /b /a-d 2^>NUL') do if /i "%%a" NEQ "%0" call :PROCESS "%%a" %%~ta
popd
goto :EOF
:PROCESS
for /f "tokens=1-3 delims=/" %%a in ('echo %2') do (
set cmm=%%a
set cdd=%%b
set cyyyy=%%c
)
REM echo if /i "%cyyyy%%cmm%%cdd%" LEQ "%cutOff%" echo del %1
REM ** Remove echo to enable delete
if /i "%cyyyy%%cmm%%cdd%" LEQ "%cutOff%" echo del %1
</code>
Alternativt om du har resourcekitet
<code>
Or use the Resource Kit tool - forfiles.exe
example:
FORFILES -pc:\foldername -s -m*.zip -d-31 -c"CMD /C del @FILE"
-p = path
-s = include subdirs
-m = match filetype - *.zip in your case
-d = age in days (can also be set as an absolute date ie DDMMYYYY) - 31 days here
-c = command to execute
</code>