使用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
扫描二维码关注公众号,回复: 9219935 查看本文章
四、时间格式化
%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