【问题标题】:PowerShell partial zip file namePowerShell 部分 zip 文件名
【发布时间】:2021-09-19 03:44:25
【问题描述】:

目前我有一个代码可以提取每晚上传的 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

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

任何帮助将不胜感激!

【问题讨论】:

    标签: powershell zip unzip


    【解决方案1】:

    听起来您只希望有 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")
            }
        }
    

    【讨论】:

      猜你喜欢
      • 2023-04-01
      • 2016-11-02
      • 1970-01-01
      • 2016-08-01
      • 2021-10-09
      • 2013-02-27
      • 1970-01-01
      • 2018-12-31
      • 1970-01-01
      相关资源
      最近更新 更多