使用powershell用winrar命令行归档单个文件



我正在努力使用PowerShell命令与winrar存档文件

文件夹有一些文本文件N:Download: abc.txt, xyz.txt

我想得到输出:N:Download: abc.rar, xyz.rar,并删除归档后的文本文件。如何设置压缩级别的最大值?

https://documentation.help/WinRAR/HELPSwM.htm

这是我的示例脚本

$Source = get-ChildItem -path N:Download -filter "*.txt"
$Rarfile = "C:Program FilesWinRARWinRAR.exe" 
$Dest = "N:Download"
&$WinRar a $Source.Fullname $Dest

从文档中

  • 要在归档后删除文件,使用-df switch
  • 使用-m开关

注意,您已经在变量$Rarfile中定义了winrar.exe文件的完整路径,但稍后您使用未定义的变量$WinRar..

如果您想分别为每个源文件创建一个.rar文件,您将需要一个循环来构造输出.rar文件名

$WinRar = "C:Program FilesWinRARWinRAR.exe" 
$Dest   = "N:Download"
(Get-ChildItem -Path 'N:Download' -Filter '*.txt') | ForEach-Object {
$outFile = Join-Path -Path $Dest -ChildPath ('{0}.rar' -f $_.BaseName)
& $WinRar a -m4 -df $outFile $($_.Fullname)
# or use 
# & $WinRar m -m4 $outFile $($_.Fullname)
}

如果您不希望WinRar包含文件的文件夹结构,请将-ep开关附加到命令

最新更新