Я создал следующий сценарий 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
Предполагается, что его функция заключается в ежедневном резервном копировании базы данных MySQL для моего веб-сайта WordPress.
Когда я запускаю сценарий в PowerShell ISE, он работает нормально, и файл дампа MySQL создается без проблем.
Однако в планировщике заданий он завис при запуске с кодом 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
Что я делаю не так?
$dateString = (Get-Date).ToString("yyyy-MM-dd")
было бы более читабельно. - person vonPryz   schedule 01.08.20162>&1
из строки, которую вы назначаете $backupFilePath, и посмотрите, по-прежнему ли вы получаете недопустимые символы (› — недопустимый символ пути). - person Keith Hill   schedule 02.08.2016$backupFilePath
в кавычки, чтобы вся строка (включая 2›&1) отображалась как часть имени файла. Во всяком случае, это моя теория. - person Keith Hill   schedule 04.08.2016