目前,我有一个代码,它提取每晚上传的zip文件,它的名称是CallRecording_1-000-XXXXXXXX
,X表示生成zip文件的日期和时间。我想要做的是使用一个powershell脚本来查找部分名称。例如,它只需要查找CallRecording_1-000
或CallRecording
。
目前,我有以下脚本:
#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
我之前发现的使用部分名称的脚本似乎主要关注扩展,而不是名称本身。
任何帮助都将不胜感激!
发布于 2021-07-08 09:34:23
听起来你只需要一个zip文件,但是我为这个答案量身定做了一个以上的可能性。
我们将使用'CallRecordings*.zip'
匹配的任何压缩文件,然后将这些文件一次传输到ForEach-Object
cmdlet,在ForEach-Object
cmdlet中分配提取文件夹
H 111
,然后重命名file.
$i
用于允许我们为重命名的zip文件命名不同的名称,以防处理超过一个。
$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")
}
}
https://stackoverflow.com/questions/68305619
复制