DOS-Befehlszeilen Verschieben Sie Dateien in Ordner mit dem Namen des Vormonats

DOS-Befehlszeilen Verschieben Sie Dateien in Ordner mit dem Namen des Vormonats

Ich versuche, im Aufgabenplaner eine Aufgabe zu erstellen, die automatisch einige PDF-Dateien in einen anderen Ordner verschiebt, der auf dem Datum in den PDF-Dateien basiert, also dem vorherigen Monat. Mein Problem ist, dass ich nicht herausfinden kann, wie ich die Befehlszeile dazu bringen kann, zum vorherigen Monat zurückzukehren. Ich verwende zunächst dasselbe, um den Ordner zu erstellen, aber die Aufgabe ist so eingestellt, dass sie am Ende des Monats ausgeführt wird, der als vorheriger Monat betrachtet wird. So wird beispielsweise eine Aufgabe im Oktober ausgeführt, um den Ordner für den aktuellen Monat 2010-10 zu erstellen, und eine andere wird im November ausgeführt, nachdem die PDFs kompiliert wurden, und verschiebt sie in den Ordner 2010-10. Irgendwelche Ideen?

Die Datumsparameter, die ich verwende, sind „%DATE:~0,2%“. Ich habe „%DATE:~0,2% -1“ und „%DATE:~0,2%-1“ ausprobiert und der vollständige Text in der Batchdatei lautet „move [-Y] *.pdf P:\CBO\Physician Monthly Reports\%DATE:~6,4%-%DATE:~0,2% -1“.

Antwort1

Ihre Zeichenauswahl erfordert, dass Ihr Datumsformat wie „MM-TT-JJJJ“ aussieht. Dieser Befehl ruft die Nummer des aktuellen Monats ab, subtrahiert eins und speichert sie in einer Variablen namens prevmonth. Er subtrahiert auch eins vom Jahr, wenn der vorherige Monat Dezember ist:

set /a prevmonth=%DATE:~0,2% - 1
set yearprevmo=%DATE:~6,4%
if %prevmonth% equ 0 set /a yearprevmo=%yearprevmo%-1 & set prevmonth=12
move -Y *.pdf "P:\CBO\Physician Monthly Reports\%yearprevmo%-%prevmonth%"

Beachten Sie die Anführungszeichen, da Ihr Verzeichnisname Leerzeichen enthält.

Antwort2

C:\>move /Y \\your Network server\PROD\PM\FileArchive\2011*.txt \\your Network server\PROD\PM\FileArchive\Documents

verwandte Informationen