我目前正在尝试使用运行后台的 Python 3.7 应用程序自动备份数据库。我设法使用以下查询字符串备份数据库。SQLCommand = ("sqlcmd -E -S %s -Q \"BACKUP DATABASE %s TO DISK=\'%s\%02d-%02d-%02d-%02d:%02d:%02d.bak\'\"" % ("MYSERVER\SQLSERVICE", "MyDatabase", "C:\\Users\Malek\Documents\PYSQLBS\Backups",CDT.year, CDT.month, CDT.day, CDT.hour, CDT.minute, CDT.second))...print(subprocess.Popen(SQLCommand, shell=True, stdout=subprocess.PIPE).stdout.read())但是,我收到此错误。我 100% 确定该文件夹C:\Users\Malek\Documents\PYSQLBS\Backups存在,因为我直接在命令行中测试了该命令,并且它运行良好。消息 3201,级别 16,状态 1,服务器 MYSERVER\SQLSERVICE,第 1 行无法打开备份设备“C:\Users\Malek\Documents\PYSQLBS\Backups\2019-09 -09-16:24:46.bak”。操作系统错误 123(文件名、目录名或卷标语法不正确。)。消息 3013,级别 16,状态 1,服务器 MYSERVER\SQLSERVICE,第 1 行备份数据库异常终止。
1 回答
慕仙森
TA贡献1827条经验 获得超8个赞
问题是:备份文件名称中的字符:2019-09 -09-16:24:46.bak
Windows 文件夹和文件路径不能包含:字符,除非在分隔驱动器号时,例如:C:\foo\bar.txt可以。C:\foo\bar:::baz.txt不是。
添加回答
举报
0/150
提交
取消
