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%

Merk

Takk til Rob for dette tipset på forumet.
Forrige Artikkel Neste Artikkel

Beste Tips