请求修改PowerShell脚本:提取最新Zip文件并解压内部文件夹内容
修改后的PowerShell脚本实现自动解压最新Zip文件及内部文件夹内容
以下是修改后的脚本,会自动识别目标目录下的最新Zip文件,并将其内部所有文件夹中的内容解压到指定目录:
powershell.exe -nologo -noprofile -command "& { $targetPath = 'C:\TEMP\TXT_SOURCES' # 获取目录下最新的Zip文件 $latestZip = Get-ChildItem -Path $targetPath -Filter '*.zip' | Sort-Object LastWriteTime -Descending | Select-Object -First 1 if ($latestZip) { $shell = New-Object -COM Shell.Application $target = $shell.NameSpace($targetPath) $zip = $shell.NameSpace($latestZip.FullName) # 遍历Zip内所有项(包括文件夹内的内容)并复制 foreach ($item in $zip.Items()) { $target.CopyHere($item, 16) } } else { Write-Host '目标目录下未找到Zip文件' } }"
关键修改说明:
- 自动获取最新Zip:通过
Get-ChildItem筛选.zip后缀文件,按LastWriteTime降序排序后取第一个,确保拿到最新的压缩包 - 递归解压内部内容:通过遍历
$zip.Items()的所有子项,实现将Zip内部文件夹里的内容直接提取到目标目录,而非只复制文件夹本身 - 异常处理:增加了判断逻辑,如果目录下没有Zip文件会给出提示
- 保留原参数:继续使用
16作为CopyHere的参数,避免弹出解压进度对话框
内容的提问来源于stack exchange,提问作者Barry
相关产品推荐
相关产品推荐

