我目前正在嘗試使用運行后臺的 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
提交
取消