Frage : DOS stapeln Index auf, um zu kopieren/Löschung-Akten mit Datum im Dateinamen

Kann jemand mir helfen, einen DOS-Reihenindex zu schreiben, der das folgende tut, wenn Durchlauf:

1) Bewegung alle Akten mit .trn oder .bak Verlängerung in einen Netzweg mit einem Datum im Dateinamen, der dann 1 Woche vom Tag run.
Example alt ist:
Run Datum 7/23/2010
Files im Faltblatt: Test_file_201007100020.trn
Test_file_201007220020.trn
Test_file_201007100020.bak
Test_file_201007100020.temp
The archiviert Test_file_201007100020.trn, werden Test_file_201007100020.bak auf die Netzposition verschoben, werden alle weiteren Akten alone

2) Löschungakten mit einem .trn oder einem .bak von der Netzposition mit einem Datum im Dateinamen älter als 4 Wochen von heute gelassen:
Example:
Run Datum 7/23/2010
Files im Faltblatt: Test_file_201006100020.trn
Test_file_201007220020.trn
Test_file_201006100020.bak
Test_file_201006100020.temp

The archiviert Test_file_201006100020.trn, Test_file_201006100020.bak werden gelöscht aus der Netzposition, alle weiteren Akten werden gelassen alone

Antwort : DOS stapeln Index auf, um zu kopieren/Löschung-Akten mit Datum im Dateinamen

Das O.K., zurück gehend zu, wo ich -1 war, ändert vor, und das Problem dort behebend (ich verwendete %%~tA anstelle von %%~nA, um herr5uhren von zu erhalten, das er Namen archiviert), sehen, wie dieses geht.

~bp
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
6:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
@echo weg
setlocal EnableExtensions EnableDelayedExpansion
 
Rem definieren Quell- und Bestimmungsortpositionen und archivieren Muster, um zu kopieren
SourceDir= c:\temp\EE26352923\source einstellen
DestDir= c:\temp\EE26352923\dest einstellen
MatchExts=*.trn *.bak einstellen
 
Rem erhalten heutiges Datum und umwandeln in julianisches s
für /F „tokens=2-4 delims=/“ %%A innen („%DATE%") einstellen TodaysDate=%%C%%A%%B en
Anruf: jdate TodaysJDate %TodaysDate%
 
Rem bewegen auf Quellverzeichnis, finden alle Akten, gewünschtes Muster zusammenzubringen
pushd „%SourceDir%“
für %%A (%MatchExts%) innen tun (
  Rem erhalten Aktenänderungsdatum, Bekehrten zu julianischem
  FileDate=%%~nA einstellen
  Anruf: jdate FileJDate! FileDate: ~-12.8!
  Rem berechnen Alter der Akte an den Tagen, wenn älter als 7 Tage auf Bestimmungsort bewegen
  /A FileAge=%TodaysJDate%- einstellen! FileJDate!
  wenn! FileAge! GTR 7 verschieben „%%~A“ „%DestDir%“
)
popd
 
Rem bewegen auf Bestimmungsortverzeichnis, finden alle Akten, gewünschtes Muster zusammenzubringen
pushd „%DestDir%“
für %%A (%MatchExts%) innen tun (
  Rem erhalten Aktenänderungsdatum, Bekehrten zu julianischem
  FileDate=%%~nA einstellen
  Anruf: jdate FileJDate! FileDate: ~-12.8!
  Rem berechnen Alter der Akte an den Tagen, wenn eine älter als 28 Tageslöschung vom Bestimmungsort
  /A FileAge=%TodaysJDate%- einstellen! FileJDate!
  wenn! FileAge! GTR 28 del „%%~fA“
)
popd
 
/b herausnehmen
 
Rem-Subroutine, zum des julianischen Datums zu berechnen
: jdate zurückbringen-variable Datumschnur (YYYYMMDD) 
  DateStr=%~2 einstellen
  yy=%DateStr einstellen: ~0.4%
  /A mm=1%DateStr einstellen: ~4.2%-100
  /A dd=1%DateStr einstellen: ~6.2%-100
  /a „yy=10000%yy% %%10000, mm=100%mm% %% 100, dd=100%dd% %% 100“ einstellen
  /a %~1=dd-32075+1461* (yy+4800+ (mm-14) /12) /4+367* (mm-2- (mm-14) /12*12) /12-3* einstellen ((yy+4900+ (mm-14) /12) /100) /4
  /b herausnehmen
Weitere Lösungen  
 
programming4us programming4us