Batch Script - Pindahkan file ke \% date% \% time% \
- Larutan
- Catatan
Saya telah mencoba membuat skrip batch sederhana untuk membuat cadangan basis data dan memindahkannya ke folder bernama berdasarkan tanggal, dan subfolder berdasarkan waktu. Inilah yang saya miliki sejauh ini:
---
@echo mati@echo Mencadangkan Server1
mysqldump -A -Q -R -c -e --lock-tables = FALSE -uXXXX -pXXXX -hX.XX1> c: \ backup \ 01.sql
@echo Mencadangkan Server2
mysqldump -A -Q -R -c -e --lock-tables = FALSE -uXXXX -pXXXX -hX.XX2> c: \ backup \ 02.sql
@echo Mencadangkan Server3
mysqldump -A -Q -R -c -e --lock-tables = FALSE-uXXXX -pXXXX -hX.XX3> c: \ backup \ 03.sql
atur folderdate =% date: ~ 7, 2% -% date: ~ 4, 2% -% date: ~ 10, 4%
mkdir c: \ backup \% folderdate%
atur waktu lipat =% waktu: ~ 0, 2% -% waktu: ~ 3, 2%
mkdir c: \ backup \% folderdate% \% foldertime%
pindah c: \ backup \ *. sql c: \ backup \% folderdate% \% foldertime% \
---
Saya memiliki jadwal ini untuk menjalankan setiap 12 jam dari 8:00. Namun, sementara batch yang berjalan pada pukul 8 malam berhasil, file-file 8AM tetap tidak tergerak. Faktanya di AM, folder 'foldertime' dibuat di luar folder 'folderdate' dan situs di sebelah file yang telah dibuat tetapi tidak dipindahkan.
Namun, pada 8Pm semuanya bekerja seperti pesona. Mungkin ini ada hubungannya dengan menggunakan waktu 24 jam, karena folder adalah nama dalam 24 jam, sedangkan XP menggunakan AM / PM di kolom 'dimodifikasi'. Saya tidak melihat logika apa pun yang akan menyebabkan hal ini terjadi, tetapi saya berharap seseorang dapat mengarahkan saya ke arah yang benar.
Larutan
Masukkan baris berikut dalam file batch Anda:atur DD =% DATE: ~ 0, 2%atur MM =% DATE: ~ 3, 2%
set YY =% DATE: ~ 8, 2%
set YYYY =% DATE: ~ 6, 4%
set HH =% TIME: ~ 0, 2%
atur MN =% TIME: ~ 3, 2%
Anda sekarang dapat merangkai mereka dalam format apa pun yang Anda inginkan untuk membuat nama folder bertanggal, misalnya,
atur FOLDER =% YYYY% -% MM% -% DD%
echo% FOLDER% sekarang akan memberi Anda 2009-03-10
Saya sarankan Anda menggunakan format tanggal terbalik ini karena lebih baik.
Hapus spasi di akhir baris SET YYYY =% DATE: ~ 10, 4%