Skrip Batch - Pindahkan fail ke%%%% \% time% \

  • Penyelesaian
  • Catatan

Saya telah cuba membuat skrip batch yang mudah untuk membuat sandaran pangkalan data dan memindahkannya ke dalam folder bernama mengikut tarikh, dan subfolder mengikut masa. Inilah yang saya ada setakat ini:

---

 @echo off

@echo Backing Up Server1

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

@echo Backing Up Server2

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

@echo Backing Up Server3

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

set folderdate =% date: ~ 7, 2% -% date: ~ 4, 2% -% date: ~ 10, 4%

mkdir c: \ backup \% folderdate%

set foldertime =% time: ~ 0, 2% -% time: ~ 3, 2%

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

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

---

Saya mempunyai jadual ini untuk setiap 12 jam dari 8PM. Walau bagaimanapun, sementara batasan yang berjalan pada 8PM berjaya, fail 8AM tetap tidak dapat ditarik. Malah di AM, folder 'foldertime' dibuat di luar folder dan folder 'folderdate' di sebelah fail yang telah dibuat tetapi tidak dipindahkan.

Namun, pada 8Pm semuanya berfungsi seperti daya tarikan. Mungkin ini mempunyai kaitan dengan menggunakan masa 24 jam, kerana folder nama dalam 24 jam, sementara XP menggunakan AM / PM dalam lajur 'diubahsuai'. Saya tidak melihat apa-apa logik yang akan menyebabkan perkara ini berlaku seperti itu, tetapi saya harap seseorang boleh menunjukkan saya ke arah yang betul.

Penyelesaian

Masukkan baris berikut dalam fail kumpulan anda:

 tetapkan DD =% TARIKH: ~ 0, 2%

tetapkan MM =% DATE: ~ 3, 2%

tetapkan YY =% TARIKH: ~ 8.2%

tetapkan YYYY =% TARIKH: ~ 6, 4%

tetapkan HH =% TIME: ~ 0, 2%

set MN =% TIME: ~ 3, 2%

Anda kini boleh menyambungkannya bersama dalam sebarang format yang anda mahu buat nama folder bertarikh, contohnya,

tetapkan FOLDER =% YYYY% -% MM% -% DD%

echo% FOLDER% kini akan memberi anda 2009-03-10

Saya cadangkan anda menggunakan format tarikh terbalik ini kerana ia lebih baik.

Keluarkan ruang pada akhir baris SET YYYY =% TARIKH: ~ 10, 4%

Catatan

Terima kasih kepada Rob untuk tip ini di forum.
Artikel Sebelumnya Artikel Seterusnya

Tip-Tip Utama