使用bat 編寫postgresql自動備份腳步
背景需求
每天需要手動備份一個數據庫到本地,每次都需要切換的postgresql/bin 下面,創建文件夾,
然後輸入一串的備份命令,再輸入密碼;每天都要這麼做感覺麻煩,所以編寫了一個bat腳步
bat腳步如下:postgresql_backup.bat
,
set current_path=%~dp0
::獲取日期時分
set directory=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%
:: 全路徑
set allpath=%current_path%%directory%
:: 去除所有空格
set "allpath=%allpath: =%"
::在當前目錄下創建一個文件夾
md %allpath%
:: fsutil創建一個空文件
fsutil file createnew %allpath%\tenant_1011014.backups 0
::切換目
E:
cd E:\postgresql\bin
:: 睡1s
ping -n 1 127.0.0.1>nul
::輸入密碼密碼到特定的文件,目的是跳過輸入密碼環節
echo set pws=WScript.CreateObject("WScript.Shell")>%allpath%\pws.vbs
echo pws.SendKeys "123456{ENTER}">>%allpath%\pws.vbs
::清空屏幕操作
cls
::備份數據庫,直接跳過輸入密碼環境
wscript %allpath%\pws.vbs&pg_dump -h 127.0.0.1 -p 5432 -U postgres -F c -b -v -f %allpath%\tenant_1011014.backups tenant_1011014
::rem 刪除腳本
del %allpath%\pws.vbs
::輸出不顯示命令
ECHO OFF
CLS
color 0A
ECHO congratulations, database backup is complete !
timeout 5
:: 退出窗口
exit;
補充一下bat相關命令
一、color
設置顏色: color 0a 設置成綠色
二、 pause
暫停屏幕
三、mk
創建文件夾。例如:在桌面創建一個bat目錄
md C:\Users\Administrator\Desktop\bat
四、時間格式化
%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%-%time:~3,2%-%time:~6,2%
%date:~0,4% 表示年 ,例如:2020
%date:~5,2% 表示月, 例如:12
%date:~8,2% 表示日,例如:20
%time:~0,2% 表示小時,例如:22
%time:~3,2% 表示分鐘,例如:32
%time:~6,2% 表示秒,例如:31
例如:
%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
20191220223313
五、註釋
:: 表示註釋
六、設置變量
set date=%date%
::使用變量時需要使用兩個%
echo %date%
七、創建一個空文件
:: 在E:盤符下創建一個pg.backups 空文件
fsutil file createnew E:\pg.backups 0
八、當前目錄
:: 當前目錄
%cd%
:: bat文件運行所在目錄
%~dp0
九、去除所有空格
set str= h z y
set "str=%str: =%"
:: 去除後爲 hzy
十、創建一個空文件
fsutil file createnew filename 0
例如:
fsutil file createnew %allpath%\tenant_1011014.backups 0