0

我创建了以下 PowerShell 脚本。

$root = 'C:\Backups\My Website\Database Dumps\'

$dateString = (Get-Date).ToString("yyyy-MM-dd")

$fileName = $dateString + "-MyWebsiteDbBackup.sql"

$backupFilePath = ($root + $fileName)

$command = ("mysqldump -u root wpdatabase > " + "`"$backupFilePath`"")

Write-Host $command

Invoke-Expression $command

它的功能应该是为我的 WordPress 网站每天备份 MySQL 数据库。

当我在 PowerShell ISE 中运行脚本时,它运行良好,并且创建了 MySQL 转储文件,没有任何问题。

但是,在任务计划程序中,它被卡在使用 code 运行0x00041301

对于凭证,我使用的是此处描述my.cnf的技术。而且我已经将任务设置为无论用户是否登录都运行。

代码更新

基于 vonPryz 的回答。

$root = 'C:\Backups\My Website\Database Dumps\'

$dateString = (Get-Date).ToString("yyyy-MM-dd")

$fileName = $dateString + "-MyWebsiteDbBackup.sql"

$backupFilePath = ($root + $fileName + " 2>&1")

$command = ("mysqldump -u root wpdatabase > " + "`"$backupFilePath`"")

Write-Host $command

$output = Invoke-Expression $command 

$output | Out-File C:\mysqlBackupScriptOutput.txt

这现在给我一个错误说illegal character in path

我究竟做错了什么?

4

1 回答 1

0

Task Scheduler 的代码0x00041301 表示任务正在运行。这很可能意味着mysqldump正在提示某事。也许是密码或一些确认对话框。任务在哪个用户帐户上运行?

为了调试,您需要捕获进程的输出以查看发生了什么。尝试使用Tee-Object将副本发送到文件。

于 2016-08-01T07:50:40.107 回答