Batch Script - Flytt filer til \% date% \% time% \
- Løsning
- Merk
Jeg har forsøkt å lage et enkelt batch script for å lage databasekoblinger og flytte dem til en mappe oppkalt etter dato, og en undermappe etter tid. Dette er hva jeg har så langt:
---
@echo av@echo Sikkerhetskopiering av server1
mysqldump -A -Q -R -c -e -lock-tables = FALSE -uXXXX -pXXXX -hX.XX1> c: \ backup \ 01.sql
@echo Sikkerhetskopierer Server2
mysqldump -A -Q -R -c -e -lock-tables = FALSE -uXXXX -pXXXX -hX.XX2> c: \ backup \ 02.sql
@echo Sikkerhetskopierer Server3
mysqldump -A -Q -R -c -e -lock-tables = FALSE-uXXXX-pXXXX -hX.XX3> c: \ backup \ 03.sql
sett folderdate =% dato: ~ 7, 2% -% dato: ~ 4, 2% -% dato: ~ 10, 4%
mkdir c: \ backup \% folderdate%
sett mappetid =% tid: ~ 0, 2% -% tid: ~ 3, 2%
mkdir c: \ backup \% folderdate% \% foldertime%
flytt c: \ backup \ *. sql c: \ backup \% folderdate% \% foldertime% \
---
Jeg har dette planlagt å løpe hver 12 timer fra 8 PM. Imidlertid, mens batchen som kjører klokka 8, er vellykket, forblir 8AM-filene uberørt. Faktisk i AM, er mappen 'foldertime' opprettet utenfor mappen 'folderdate' og nettsteder ved siden av filene som er opprettet, men ikke flyttet.
Og likevel, på 8 pm virker alt som en sjarm. Formentlig har dette å gjøre med å bruke 24-timers tid, da mappene er navn på 24 timer, mens XP bruker AM / PM i kolonnen 'Modifisert'. Jeg ser ingen logikk som vil føre til at dette skjer slik det gjør, men jeg håper noen kan peke meg i riktig retning.
Løsning
Legg inn følgende linjer i batchfilen din:sett DD =% DATE: ~ 0, 2%sett MM =% DATE: ~ 3, 2%
sett YY =% DATE: ~ 8, 2%
angi YYYY =% DATE: ~ 6, 4%
sett HH =% TID: ~ 0, 2%
sett MN =% TID: ~ 3, 2%
Du kan nå stryke dem sammen i et hvilket som helst format du vil lage et datert mappenavn, f.eks.
sett FOLDER =% ÅÅÅÅ% -% MM% -% DD%
ekko% FOLDER% vil nå gi deg 2009-03-10
Jeg anbefaler at du bruker dette omvendt datoformatet som det sorterer bedre.
Fjern mellomrom på slutten av linjen SET YYYY =% DATE: ~ 10, 4%