У меня есть рабочий сценарий, который 7zips sql bak файлы в сетевое расположение (помогли здесь хорошие люди :)). поскольку 7zip не имеет записей для восстановления, я хотел бы использовать par2. Теперь я собрал сценарий, который (я не удивлен, потому что я действительно не знаю PowerShell) не работает.
Сценарий:
$path = "\\server\BACKUP\temp"
$dest = $path
$mask = "*.zip"
$files = dir $path -Include $mask
foreach ($file in $files)
{
C:\PAR\par2.exe c -r10 -n1 -m1024 "$dest\($file.basename).par2" $file
}
я думаю, что я недалеко, но решение ускользает от меня :(
ты заранее.
Я не знаю, как работает par2.exe, поэтому предполагаю, что все аргументы, которые вы подключаете к par2.exe, действительны. Я закомментировал последнюю строку знаком «#», который должен выполнять команду. Сначала запустите сценарий, чтобы убедиться, что вывод на печать - это именно то, что вам нужно, затем удалите начальный знак "#" из последней строки, чтобы выполнить команду.
$path = "\\server\BACKUP\temp"
$dest = $path
$mask = "*.zip"
$files = get-childitem $path | where-object {$_.name -like $mask}
$PARCMD = "C:\PAR\par2.exe"
foreach ($file in $files)
{
$arg = $dest + "\" + $file.name + ".par2"
$PARArgs = @("c","-r10","-n1","-m1024",$arg,$file)
write-host $PARCMD $PARArgs
#& $PARCMD $PARArgs
}
Я использую powershell 4.0, но я думаю, что он должен быть обратно совместим с 2.0 / 3.0, пожалуйста, опубликуйте здесь ошибку, если вы ее получите, я помогу.