बैच स्क्रिप्ट - फ़ाइलों को \% तिथि% \% समय% \ पर ले जाएं
- उपाय
- ध्यान दें
मैंने डेटाबेस बैकअप बनाने के लिए एक साधारण बैच स्क्रिप्ट बनाने की कोशिश की है और उन्हें तिथि के अनुसार एक फ़ोल्डर में स्थानांतरित कर दिया है, और समय के साथ एक सबफ़ोल्डर। अभी तक मेरे पास इतना ही है:
---
@ तो बंद@echo सर्वर 1 का समर्थन
mysqldump -A -Q -R -c -e -lock-tables = FALSE -uXXXX -pXXXX -hX.XX1> c: \ backup \ 01.sql
@echo सर्वर 2 का समर्थन
mysqldump -A -Q -R -c -e -lock-tables = FALSE -uXXXX -pXXXX -hX.XX2> c: \ backup \ 02.sql
@echo सर्वर 3 का समर्थन
mysqldump -A -Q -R -c -e -lock-tables = FALSE-uXXXX -pXXXX -hX.XX3> c: \ backup \ 03.sql
फ़ोल्डर सेट करें =% दिनांक: ~ 7, 2% -% दिनांक: ~ 4, 2% -% दिनांक: ~ 10, 4%
mkdir c: \ backup \% folderdate%
सेट टाइमटाइम =% समय: ~ 0, 2% -% समय: ~ 3, 2%
mkdir c: \ backup \% folderdate% \% फ़ोल्डर समय%
चाल c: \ backup \ *। sql c: \ backup \% folderdate% \% foldertime% \
---
मैं यह हर 12hours 8PM से चलाने के लिए निर्धारित है। हालाँकि, जब बैच 8PM पर चलता है, तो सफल होता है, 8AM फ़ाइलें अप्रचलित रहती हैं। वास्तव में एएम में, 'फोल्डरटाइम' फोल्डर 'फोल्डरडेट' फोल्डर के बाहर बनाया जाता है और उन फाइलों के आगे की साइट्स को बनाया जाता है जो कि स्थानांतरित नहीं हुई हैं।
और फिर भी, 8Pm पर सब कुछ एक आकर्षण की तरह काम करता है। संभवतया यह 24 घंटे के समय के साथ करना है, क्योंकि फ़ोल्डर्स 210 में नाम हैं, जबकि XP 'संशोधित' कॉलम में एएम / पीएम का उपयोग करता है। मुझे ऐसा कोई तर्क दिखाई नहीं देता है, जिससे यह होता है जिस तरह से होता है, लेकिन मुझे उम्मीद है कि कोई मुझे सही दिशा में ले जा सकता है।
उपाय
अपनी बैच फ़ाइल में निम्नलिखित पंक्तियों को सम्मिलित करें:DD =% DATE सेट करें: ~ 0, 2%MM =% DATE सेट करें: ~ 3, 2%
YY =% DATE सेट करें: ~ 8, 2%
YYYY =% DATE सेट करें: ~ 6, 4%
HH =% समय निर्धारित करें: ~ 0, 2%
MN =% समय निर्धारित करें: ~ 3, 2%
अब आप उन्हें किसी भी प्रारूप में एक साथ स्ट्रिंग कर सकते हैं, जिसे आप दिनांकित फ़ोल्डर नाम बनाना चाहते हैं, जैसे,
सेट FOLDER =% YYYY% -% MM% -% DD%
इको% FOLDER% अब आपको 2009-03-10 देगा
मेरा सुझाव है कि आप इस रिवर्स डेट फॉर्मेट का उपयोग करें क्योंकि यह बेहतर है।
पंक्ति के अंत में स्थान निकालें YYYY =% DET: ~ 10, 4%