2016-04-10 18 views
0

Dosyalarımı ftp'mden yükleyen bir toplu iş komut dosyası var. Her hafta bu komut dosyasını çalıştırmakGüncelleştirme 2 hafta önce toplu iş dosyasıyla çalışma

FOR /F "TOKENS=1* DELIMS= " %%A IN ('DATE/T') DO SET CDATE=%%B 
FOR /F "TOKENS=1,2 eol=/ DELIMS=/ " %%A IN ('DATE/T') DO SET mm=%%B 
FOR /F "TOKENS=1,2 DELIMS=/ eol=/" %%A IN ('echo %CDATE%') DO SET dd=%%B 
FOR /F "TOKENS=2,3 DELIMS=/ " %%A IN ('echo %CDATE%') DO SET yyyy=%%B 
SET yy=%yyyy:~-2% 
SET filename=%yy%%mm%%dd% 

:

Bu sunucudan doğru dosya indirmenin bugünün tarihini alan bir bölüm vardır.

Şimdi, komut dosyasına, 2 hafta önce yüklenen dosyaları otomatik olarak silecek bir bölüm eklemek istiyorum.

today minus 14 days biçimlendirilmiş olan yeni bir oldfilename değişkeni nasıl oluştururum?

+0

Ara;: Burada

ben ile sona erdi kod çoğu tarih işlevleri desteklemediği için salt toplu dosya çözümleri değildir ... – aschipfl

+1

[\ [batch-file \] dün date] (http://stackoverflow.com/search?q=) ile yapılan bir aramanın sonuçlarını görün % 5Bbatch dosyası% 5D + dün + date) veya [N gününden daha eski dosyaları silmek için Batch dosyası] (http://stackoverflow.com/questions/51054/). – Mofi

cevap

0

Bana doğru yönde işaret edenler için teşekkür ederiz. tarih aritmetiği için önerileri bulmak için burada SO _ _ "önceki günün tarihine" için

@echo off 
set day=-14 
echo >"%temp%\%~n0.vbs" s=DateAdd("d",%day%,now) : d=weekday(s) 
echo>>"%temp%\%~n0.vbs" WScript.Echo year(s)^& right(100+month(s),2)^& right(100+day(s),2) 
for /f %%a in ('cscript /nologo "%temp%\%~n0.vbs"') do set "result=%%a" 
del "%temp%\%~n0.vbs" 
set "YYYY=%result:~0,4%" 
set "MM=%result:~4,2%" 
set "DD=%result:~6,2%" 
SET yy=%yyyy:~-2% 
set "oldfilename=%yy%%mm%%dd%" 
İlgili konular