Advertisement
Guest User

Untitled

a guest
May 17th, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Batch 17.04 KB | None | 0 0
  1. :main
  2. cls
  3. @echo off
  4. if "%cmode%" == "n" (color 7) else (color 17)
  5. set ask=1
  6. echo  #############################################################################
  7. echo  ###                             MySQL Utility                             ###
  8. echo  #############################################################################
  9. echo  #############################################################################
  10. echo  ###                                                                       ###
  11. echo  ###                                                                       ###
  12. echo  ### Tools:                                                                ###
  13. echo  ###                                                                       ###
  14. echo  ### (1) Backup Utility                                                    ###
  15. echo  ###                                                                       ###
  16. echo  ### (2) Restore Utility                                                   ###
  17. echo  ###                                                                       ###
  18. echo  ### (3) Merge Utility                                                     ###
  19. echo  ###                                                                       ###
  20. echo  ### (4) Quit                                                              ###
  21. echo  ###                                                                       ###
  22. echo  ###                                                                       ###
  23. echo  #############################################################################
  24. set /P ask="Choose a utility (default is '%ask%') : "
  25. if /i %ask%==1 goto mainback
  26. if /i %ask%==2 goto mainrest
  27. if /i %ask%==3 goto merge
  28. if /i %ask%==4 goto end
  29.  
  30. :mainback
  31. cls
  32. title MySQL Backup Utility
  33. echo  #############################################################################
  34. echo  ###                           MySQL Backup Tool                           ###
  35. echo  #############################################################################
  36.  
  37. :configback
  38. echo  #############################################################################
  39. echo  ###                          Loading Configuration                        ###
  40. echo  ###                                                                       ###
  41. set mysqlbinpath=%ProgramFiles%\MySQL\MySQL Server 5.1\bin
  42. set user=root
  43. set pass=
  44. set host=localhost
  45. set db=cm
  46. set port=3306
  47. set cmode=c
  48. set mysqldumppath=
  49. set mysqlpath=
  50. set backup=
  51. set cmdline=
  52. set ask=
  53. set routines=yes
  54. set trigger=yes
  55. set events=yes
  56. set cins=no
  57. echo  ###                     Checking for MySQL in PATH variable               ###
  58. path|find "MySQL">NUL
  59. if %errorlevel% == 0 (
  60. echo  ###                       MySQL found in PATH variable                    ###
  61. set mysqlbinpath=use path
  62. ) else (
  63. echo  ###        MySQL NOT found in PATH variable please insert bin path        ###
  64. set /P mysqlbinpath="(default '%mysqlbinpath%' , no '\' needed!) : class="re0">"
  65. )
  66. if not "%mysqlbinpath%" == "use path" call :binaryfind
  67.  
  68. :connset
  69. if "%cmode%" == "n" (color 7) else (color 17)
  70. cls
  71. echo  #############################################################################
  72. echo  ###                          Connection Settings                          ###
  73. echo  #############################################################################
  74. set /P user="MySQL Username (default is '%user%') : "
  75. set /P pass="MySQL Password (default is '%pass%') : "
  76. set /P db="MySQL Database (default is '%db%' , use 'all' for all databases) : "
  77. set /P host="MySQL Host (default is '%host%') : "
  78. set /P port="MySQL Port (default is '%port%') : "
  79. echo  #############################################################################
  80. echo  ###                             Misc. Settings                            ###
  81. echo  #############################################################################
  82. set /P cmode="Color mode (c)olor or (n)on-color, default is '%cmode%' : "
  83. set /P backup="Path for your backups (default is '%backup%' , with '\' at the end!) : class="re0">"
  84. set /P cins="Do you wish to have complete insert statements (default is '%cins%') : "
  85. set /P routines="Do you wish to include stored procedures and functions (default is '%routines%') : "
  86. set /P trigger="Do you wish to include triggers (default is '%trigger%') : "
  87. set /P events="Do you wish to include events (default is '%trigger%') : "
  88.  
  89. :backup
  90. if "%cmode%" == "n" (color 7) else (color 17)
  91. if "%mysqlbinpath%" == "use path" (
  92. set mysqlbinpath=
  93. set mysqldumppath=mysqldump
  94. set mysqlpath=mysql
  95. ) else (
  96. set mysqldumppath=%mysqlbinpath%\mysqldump.exe
  97. set mysqlpath=%mysqlpath%\mysql.exe
  98. )
  99. set cmdline=%mysqldumppath% -h %host% --port=%port% -u %user% --password=%pass%
  100. if "%cins%" == "yes" (set cmdline=%cmdline% --complete-insert)
  101. if "%routines%" == "yes" (set cmdline=%cmdline% --routines)
  102. if "%trigger%" == "yes" (set cmdline=%cmdline% --triggers)
  103. if "%events%" == "yes" (set cmdline=%cmdline% --events)
  104. if "%db%" == "all" (set cmdline=%cmdline% --all-databases ^>"%backup%%db%_backup.sql" 2^>NUL
  105. ) else (
  106. set cmdline=%cmdline% %db% ^>"%backup%%db%_backup.sql" 2^>NUL)
  107.  
  108. cls
  109. echo  #############################################################################
  110. echo  ###                          Trying to make a backup                      ###
  111. echo  #############################################################################
  112. %cmdline%
  113. if %ERRORLEVEL% == 0 goto backupok
  114.  
  115. :backupfail
  116. cls
  117. if "%cmode%" == "n" (color 7) else (color 47)
  118. title !!! BACKUP FAILED !!!
  119. set ask=y
  120. del %db%_backup.sql
  121. echo  #############################################################################
  122. echo  ###                               Backup Failed                           ###
  123. echo  #############################################################################
  124. echo  ### ATTEMPT TO BACKUP DATABASE AGAIN?                       ###
  125. echo  ###                                                                       ###
  126. echo  ### (y)es                                                                 ###
  127. echo  ###                                                                       ###
  128. echo  ### (n)o                                                                  ###
  129. echo  ###                                                                       ###
  130. echo  ### (r)econfigure                                                         ###
  131. echo  ###                                                                       ###
  132. echo  ### (q)uit                                                                ###
  133. echo  ###                                                                       ###
  134. echo  #############################################################################
  135. set /P ask= Choose (default is '%ask%') :
  136. color 17
  137. if /i %ask%==y goto backup
  138. if /i %ask%==n goto main
  139. if /i %ask%==r goto connset
  140. if /i %ask%==q goto end
  141. goto backupfail
  142.  
  143. :backupok
  144. if "%cmode%" == "n" (color 7) else (color 17)
  145. set ask=q
  146. cls
  147. echo  #############################################################################
  148. echo  ###                            Backup Completed                           ###
  149. echo  #############################################################################
  150. echo  ### What will you do now?                                                 ###
  151. echo  ###                                                                       ###
  152. echo  ### (m)ain Menu                                                           ###
  153. echo  ###                                                                       ###
  154. echo  ### (r)econfigure backup                                                  ###
  155. echo  ###                                                                       ###
  156. echo  ### (q)uit                                                                ###
  157. echo  ###                                                                       ###
  158. echo  #############################################################################
  159. set /P ask= Choose (default is '%ask%') :
  160. if /i %ask%==m goto main
  161. if /i %ask%==r goto connset
  162. if /i %ask%==q goto end
  163. goto backupok
  164.  
  165. :end
  166. if "%cmode%" == "n" (color 7) else (color 17)
  167. cls
  168. echo  #############################################################################
  169. echo  ###                          MySQL Backup Utlity                          ###
  170. echo  #############################################################################
  171. echo  ###                                                                       ###
  172. echo  ###                                                                       ###
  173. echo  ###                                                                       ###
  174. echo  ###                                                                       ###
  175. echo  ###                                                                       ###
  176. echo  ###                           Please come again!                          ###
  177. echo  ###                                                                       ###
  178. echo  ###                                                                       ###
  179. echo  ###                                                                       ###
  180. echo  ###                                                                       ###
  181. echo  ###                                                                       ###
  182. echo  ###                                                                       ###
  183. echo  #############################################################################
  184. pause
  185. exit
  186.  
  187. :mainrest
  188. echo  #############################################################################
  189. echo  ###                         MySQL Restore Utlity                          ###
  190. echo  #############################################################################
  191.  
  192. :configrest
  193. echo  #############################################################################
  194. echo  ###                          Loading Configuration                        ###
  195. echo  ###                                                                       ###
  196. set mysqlbinpath=%ProgramFiles%\MySQL\MySQL Server 5.1\bin
  197. set user=root
  198. set pass=
  199. set host=localhost
  200. set db=mysql
  201. set port=3306
  202. set cmode=c
  203. set mysqldumppath=
  204. set mysqlpath=
  205. set restore=
  206. set cmdline=
  207. set ask=
  208. echo  ###                     Checking for MySQL in PATH variable               ###
  209. path|find "MySQL">NUL
  210. if %errorlevel% == 0 (
  211. echo  ###                       MySQL found in PATH variable                    ###
  212. set mysqlbinpath=use path
  213. ) else (
  214. echo  ###        MySQL NOT found in PATH variable please insert bin path        ###
  215. set /P mysqlbinpath="(default '%mysqlbinpath%' , no '\' needed!) : class="re0">"
  216. )
  217. if not "%mysqlbinpath%" == "use path" call :binaryfind
  218.  
  219. :connsetrest
  220. if "%cmode%" == "n" (color 7) else (color 17)
  221. cls
  222. echo  #############################################################################
  223. echo  ###                          Connection Settings                          ###
  224. echo  #############################################################################
  225. set /P user="MySQL Username (default is '%user%') : "
  226. set /P pass="MySQL Password (default is '%pass%') : "
  227. set /P db="MySQL Database (default is '%db%') : "
  228. set /P host="MySQL Host (default is '%host%') : "
  229. set /P port="MySQL Port (default is '%port%') : "
  230. set restore=%db%_backup.sql
  231. echo  #############################################################################
  232. echo  ###                             Misc. Settings                            ###
  233. echo  #############################################################################
  234. set /P cmode="Color mode (c)olor or (n)on-color, default is '%cmode%' : "
  235. set /P restore="Path to your backup file (default is '%restore%' , with '.sql' at the end!) : class="re0">"
  236.  
  237. :restore
  238. if "%cmode%" == "n" (color 7) else (color 17)
  239. if "%mysqlbinpath%" == "use path" (
  240. set mysqlbinpath=
  241. set mysqldumppath=mysqldump
  242. set mysqlpath=mysql
  243. ) else (
  244. set mysqldumppath=%mysqlbinpath%\mysqldump.exe
  245. set mysqlpath=%mysqlpath%\mysql.exe
  246. )
  247. set cmdline=%mysqlpath% -h %host% --port=%port% -u %user% --password=%pass% %db% ^< %restore% 2^> NUL
  248.  
  249. cls
  250. echo  #############################################################################
  251. echo  ###                       Trying to restore the backup                    ###
  252. echo  #############################################################################
  253. %cmdline%
  254. if %ERRORLEVEL% == 0 goto restoreok
  255. goto restorefail
  256.  
  257. :restorefail
  258. cls
  259. if "%cmode%" == "n" (color 7) else (color 47)
  260. title !!! RESTORE FAILED !!!
  261. set ask=y
  262. echo  #############################################################################
  263. echo  ###                              Restore Failed                           ###
  264. echo  #############################################################################
  265. echo  ### ATTEMPT TO RESTORE DATABASE AGAIN?                                    ###
  266. echo  ###                                                                       ###
  267. echo  ### (y)es                                                                 ###
  268. echo  ###                                                                       ###
  269. echo  ### (n)o                                                                  ###
  270. echo  ###                                                                       ###
  271. echo  ### (r)econfigure                                                         ###
  272. echo  ###                                                                       ###
  273. echo  ### (q)uit                                                                ###
  274. echo  ###                                                                       ###
  275. echo  #############################################################################
  276. set /P ask= Choose (default is '%ask%') :
  277. if /i %ask%==y goto restore
  278. if /i %ask%==n goto main
  279. if /i %ask%==r goto connsetrest
  280. if /i %ask%==q goto end
  281. goto backupfail
  282.  
  283. :restoreok
  284. if "%cmode%" == "n" (color 7) else (color 17)
  285. set ask=d
  286. cls
  287. echo  #############################################################################
  288. echo  ###                           Restore Completed                           ###
  289. echo  #############################################################################
  290. echo  ### What will you do now?                                                 ###
  291. echo  ###                                                                       ###
  292. echo  ### (d)elete and quit                                                     ###
  293. echo  ###                                                                       ###
  294. echo  ### (m)ain Menu                                                           ###
  295. echo  ###                                                                       ###
  296. echo  ### (r)econfigure restore                                                 ###
  297. echo  ###                                                                       ###
  298. echo  ### (q)uit                                                                ###
  299. echo  ###                                                                       ###
  300. echo  #############################################################################
  301. set /P ask= Choose (default is '%ask%') :
  302. if /i %ask%==d goto delend
  303. if /i %ask%==m goto main
  304. if /i %ask%==r goto connsetrest
  305. if /i %ask%==q goto end
  306. goto restoreok
  307.  
  308. :delend
  309. del %restore%
  310. goto end
  311.  
  312. :binaryfind
  313. if EXIST "%mysqlbinpath%" (echo Found) else (echo Not Found)
  314. goto :eof
  315.  
  316. :merge
  317. set PATH=
  318. set OUTPUT_FILE=merged.sql
  319. set TEMP_FILE=_merge_temp_
  320. set ask=q
  321.  
  322. if exist %OUTPUT_FILE% del %OUTPUT_FILE%
  323. if exist %TEMP_FILE% del %TEMP_FILE%
  324.  
  325. cls
  326. echo  #############################################################################
  327. echo  ###                           Merge Utility                              ###
  328. echo  #############################################################################
  329. echo  ###   Where are the files located?                                       ###
  330. echo  ### Full Path (default is '%PATH%'), ending backlash required if you add path : ###
  331. set /P PATH=
  332. set INPUT_FILE=%PATH%*.sql
  333. cls
  334. type %INPUT_FILE% > %TEMP_FILE%
  335. move %TEMP_FILE% %OUTPUT_FILE%
  336. cls
  337. echo  ###   Files merged successfuly into : %OUTPUT_FILE% .                       ###
  338. echo  #############################################################################
  339. echo  ### What will you do now?                                                 ###
  340. echo  ###                                                                       ###
  341. echo  ### (m)ain Menu                                                           ###
  342. echo  ###                                                                       ###
  343. echo  ### (r)econfigure Merge                                                   ###
  344. echo  ###                                                                       ###
  345. echo  ### (q)uit                                                                ###
  346. echo  ###                                                                       ###
  347. echo  #############################################################################
  348. set /P ask= Choose (default is '%ask%') :
  349. if /i %ask%==m goto main
  350. if /i %ask%==r goto merge
  351. if /i %ask%==q goto end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement