如何使用 Rar.exe 将 Rar 文件夹恢复为原始名称

如何使用 Rar.exe 将 Rar 文件夹恢复为原始名称

我在 Google 上搜索了好几天,却没有找到太多帮助。

我正在尝试制作一个 powershell .PS1 文件,每 30 分钟运行一次以检查是否有新文件夹,它将 RAR 文件夹内的内容并保持原始文件夹不变。对这些文件夹中的文件进行 RAR 并删除源。

例如:

我将把目的地设置为:

数据 = “C:\test”

新目标 = “C:\backup”

我将有文件夹:

“C:\test\文件夹 1”

  • 一些数据.txt
  • 文件
  • 我的视频.mp4

“C:\test\文件夹 2”

  • 一些数据.txt
  • 一些数据2.txt
  • 一些数据3.doc

无论这些文件夹里面是否有内容,我都想以原始名称为这些文件夹创建 rar 文件并删除原始文件夹。

我会得到这个:

“C:\test\文件夹 1\文件夹 1.rar”

“C:\test\文件夹2\文件夹2.rar”

当子文件夹中的文件稀有且被删除时,将主文件夹移动到另一个目的地。

新目标 = “C:\backup”

“C:\backup\文件夹 1\文件夹 1.rar”

“C:\backup\文件夹 2\文件夹 2.rar”

foreach($i 在 Get-ChildItem -dir C:\test 中)

我尝试了其中的一些线路,但无法实现。

如果您有任何可以帮助我的东西,请分享。

谢谢您,如果这是重复的问题,请见谅。

答案1

科尔 尝试一下

$Source = "C:\temp"
$Destination = "D:\Backup"
# Gather Subfolders only (-directory parameter). If there are files on the root source remove this parameter to collect all files and folders
$Tree = Get-ChildItem -Path $Source -Directory | Select-Object -Property Name, FullName 

# Treatment
foreach ($dir in $tree)
    {
    # to avoid to overwrite an existing archive file, use the parameter -update
    # the name of the destination archive file will be the same of the source dir
    Compress-Archive -Path $dir.fullName -DestinationPath $Destination\$($dir.name) -CompressionLevel Optimal -Update
    Write-Verbose "$($dir.FullName) has been archived to $Destination\$($dir.name)"
    # At this step, a new .zip archive has been created, but the source folder is already present, then go to delete it
    Remove-Item -Path $dir.FullName -Force
    Write-Verbose "$($dir.FullName) has been removed"
    }

我使用具有最佳压缩功能的本机 cmdlet Compress-archive(Powershell>2)

奥利维尔

相关内容