Stapelskript - Verschieben von Dateien nach \% date% \% time% \

  • Lösung
  • Hinweis

Ich habe versucht, ein einfaches Stapelskript zu erstellen, um Datenbanksicherungen zu erstellen und diese in einen Ordner mit dem Namen nach Datum und einen Unterordner nach Uhrzeit zu verschieben. Das habe ich bisher:

---

 @echo aus

@echo Sichern von Server1

mysqldump -A -Q -R -c -e --lock-tables = FALSE -uXXXX -pXXXX -hX.XX1> c: \ backup \ 01.sql

@echo Server2 sichern

mysqldump -A -Q -R -c -e --lock-tables = FALSE -uXXXX -pXXXX -hX.XX2> c: \ backup \ 02.sql

@echo Sichern von Server3

mysqldump -A -Q -R -c -e --lock-tables = FALSE-uXXXX -pXXXX -hX.XX3> c: \ backup \ 03.sql

setze Ordnerdatum =% Datum: ~ 7, 2% -% Datum: ~ 4, 2% -% Datum: ~ 10, 4%

mkdir c: \ backup \% folderdate%

Foldertime einstellen =% time: ~ 0, 2% -% time: ~ 3, 2%

mkdir c: \ backup \% folderdate% \% foldertime%

verschiebe c: \ backup \ *. sql c: \ backup \% folderdate% \% foldertime% \

---

Ich habe dies geplant, um alle 12 Uhr ab 20 Uhr laufen. Die 8AM-Dateien bleiben jedoch nicht verschoben, während der Stapel, der um 8 PM ausgeführt wird, erfolgreich ist. Tatsächlich wird im AM der Ordner "foldertime" außerhalb des Ordners "folderdate" und der Sites neben den Dateien erstellt, die erstellt, aber nicht verschoben wurden.

Und doch funktioniert um 20 Uhr alles wie ein Zauber. Vermutlich hat dies mit 24 Stunden Zeit zu tun, da die Ordner Namen in 24 Stunden sind, während XP AM / PM in der Spalte 'modified' verwendet. Ich sehe keine Logik, die dazu führen würde, dass dies so passiert, aber ich hoffe, dass mich jemand in die richtige Richtung weisen kann.

Lösung

Fügen Sie die folgenden Zeilen in Ihre Batch-Datei ein:

 setze DD =% DATE: ~ 0, 2%

setze MM =% DATE: ~ 3, 2%

setze YY =% DATE: ~ 8, 2%

setze JJJJ =% DATE: ~ 6, 4%

setze HH =% TIME: ~ 0, 2%

setze MN =% TIME: ~ 3, 2%

Sie können sie jetzt in jedem beliebigen Format aneinanderreihen, um einen datierten Ordnernamen zu erstellen, z.

setze ORDNER =% JJJJ% -% MM% -% TT%

echo% FOLDER% gibt dir jetzt den 10.03.2009

Ich empfehle Ihnen, dieses umgekehrte Datumsformat zu verwenden, da es besser sortiert.

Entfernen Sie das Leerzeichen am Ende der Zeile. SET YYYY =% DATE: ~ 10, 4%

Hinweis

Vielen Dank an Rob für diesen Tipp im Forum.
Vorherige Artikel Nächster Artikel

Top-Tipps