PowerShell 部分 zip 文件名

PowerShell partial zip file name

目前我有一个提取每晚上传的 zip 文件的代码,它的名称为 CallRecording_1-000-XXXXXXXX X 代表生成 zip 文件的日期和时间。我想做的是有一个 powershell 脚本来查找部分名称。因此,例如它只会查找 CallRecording_1-000CallRecording.

目前我有以下脚本:

#expand archive into folder
expand-archive ("Y:\CallRecording_1-000.zip") -destinationPath $folder

#rename zip file with yesterdays date
$yesDateName = $yesDate + ".zip"
Rename-Item "Y:\CallRecording_1-000.zip" -NewName $yesDateName

我之前发现的使用部分名称的脚本似乎主要关注扩展名而不是名称本身。

如有任何帮助,我们将不胜感激!

听起来您只希望有 1 个 zip 文件,但是我根据可能有超过 1 个的可能性定制了这个答案

  • 我们将使用 Get-ChildItem 从 y:\ 获取任何匹配 'CallRecordings*.zip'
  • 的 zip 文件
  • 然后我们将这些文件一次一个地传输到 ForEach-Object cmdlet
    • 分配提取文件夹
    • 解压缩文件
    • 然后重命名文件。

$i 用于允许我们为重命名的 zip 文件使用不同的名称,以防超过 1 个正在处理。

    $i = 0
    Get-ChildItem -Path 'Y:\' -Filter 'CallRecording*.zip' | ForEach-Object -Process {
        $extractFolder = "C:\temp$($_.BaseName)"
        $_ | Expand-Archive -DestinationPath $extractFolder 
        
        # ($? tells us if the last command completed successfully)
        if ($?) {
            # only rename file if Expand-Archive was successful
            $_ | Rename-Item -NewName ((Get-Date).AddDays(-1).ToString('yyyyMMdd') + "_$((++$i)).zip")
        }
    }