Powershell 和 par2 命令行

Powershell 和 par2 命令行

我有一个可用的脚本,它将 sql bak 文件 7zips 压缩到网络位置(这里得到了好心人的帮助:))。由于 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

}

我认为我离答案不远了,但我还没找到解决办法 :(

提前谢谢。

答案1

我不知道 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 兼容,如果您遇到任何错误,请在此处发布,我会提供帮助。

相关内容