Skupni skript - Premjesti datoteke na datum% \ t
- Riješenje
- Bilješka
Pokušao sam napraviti jednostavnu batch skriptu kako bih stvorio sigurnosne kopije baze podataka i premjestio ih u mapu po datumu i podmapu po vremenu. To je ono što sam do sada imao:
---
@echo isključen@echo Backup Up Server1
mysqldump -A -Q -R -c -e --lock-tables = FALSE -uXXXX -pXXXX -hX.XX1> c: backup \ t
@echo Backup Up Server2
mysqldump -A -Q -R -c -e --lock-tables = FALSE -uXXXX -pXXXX -hX.XX2> c: backup \ t
@echo Sigurnosna kopija poslužitelja3
mysqldump -A -Q -R -c -e --lock-tables = FALSE-uXXXX -pXXXX -hX.XX3> c: backup \ t
set folderdate =% datum: ~ 7, 2% -% datum: ~ 4, 2% -% datum: ~ 10, 4%
mkdir c: backup \ t
postavi foldertime =% vrijeme: ~ 0, 2% -% vrijeme: ~ 3, 2%
mkdir c: sigurnosna kopija% folderdate% \ t
premjestiti c: backup *. sql c: sigurnosna kopija% folderdate% \ t
---
Imam ovo zakazano za trčanje svakih 12hours od 20:00. Međutim, dok je serija koja radi u 8 sati uspješna, datoteke 8AM ostaju nepokrivene. U stvari, mapa 'foldertime' je izrađena izvan mape 'folderdate' i mjesta pored datoteka koje su stvorene, ali nisu premještene.
A ipak, na 8Pm sve radi kao šarm. Vjerojatno je to povezano s korištenjem 24-satnog vremena, jer su mape imena 24h, dok XP koristi AM / PM u 'modificiranom' stupcu. Ne vidim nikakvu logiku koja bi uzrokovala da se to dogodi onako kako se to događa, ali se nadam da me netko može usmjeriti u pravom smjeru.
Riješenje
Umetnite sljedeće retke u datoteku s paketom:postavite DD =% DATUM: ~ 0, 2%postavite MM =% DATE: ~ 3, 2%
postavite YY =% DATE: ~ 8, 2%
postavite YYYY =% DATE: ~ 6, 4%
postavi HH =% VRIJEME: ~ 0, 2%
postavite MN =% VRIJEME: ~ 3, 2%
Sada ih možete povezati u bilo kojem obliku u kojem želite stvoriti naziv mape s datumom, npr.
postavi FOLDER =% YYYY% -% MM% -% DD%
echo% FOLDER% sada će vam dati 2009-03-10
JA preporučiti te iskoristiti ovaj obrnuti format datuma kao što je bolje.
Uklonite prostor na kraju retka SET YYYY =% DATE: ~ 10, 4%