Назад | Перейти на главную страницу

Командная строка Powershell и par2

У меня есть рабочий сценарий, который 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, пожалуйста, опубликуйте здесь ошибку, если вы ее получите, я помогу.