【发布时间】:2026-02-12 22:30:01
【问题描述】:
我有一个脚本,用于将多个文件添加到 Winrar 存档,测试存档,然后删除原始文件。它工作得很好,然后我把它弄坏了,现在无法修复。 现在的问题是,对于我添加到存档的每个文件,都会弹出一个新的 Winrar 窗口并告诉我一个文件正在被另一个进程使用。
这里的 powershell 可能很好,但我认为我在 rar 命令和/或路径上做错了。
提前感谢您的任何建议。
set-alias rar "c:\Program Files\WinRAR\WinRAR.exe"
$startdate = get-date("7/20/2015 00:00")
$enddate = get-date("7/21/2015 00:00")
$path = "D:\TFS.Backup"
$files = Get-ChildItem $path | Where-Object {$_.creationtime -gt $startdate -and $_.creationtime -lt $enddate}
$filedate = $startdate.day
$fileyear = $startdate.year
$filemonth = $startdate.month
$rarname = "$fileyear-$filemonth-$filedate.rar"
$destination = "$path\archive"
foreach ($file in $files) {rar a -r -m3 -t -df -mt4 $destination\$rarname $path\$file}
【问题讨论】:
-
尝试使用 Handle 之类的工具来查看是什么使该文件保持打开状态。您可以从technet.microsoft.com/en-us/sysinternals/bb896655.aspx下载Handle
-
我很确定 winrar 正试图添加到存档,而另一个 winrar 线程正在写入它.. 数百万个 winrar 弹出窗口 - $files 中的每个文件都有一个窗口让我明白这一点.当脚本正常工作时,文件会按顺序添加到存档中,在执行窗口内或在后台,当脚本使用任务调度程序执行时
标签: powershell winrar