此powershell命令非常适合在两个目录之间复制和提取zip文件:
$shell = New-Object -COM Shell.Application
$target = $shell.NameSpace('D:\destination\')
$zip = $shell.NameSpace('D:\source\version_*.zip')
$target.CopyHere($zip.Items(), 16)
但是,我正在努力进行修改以使其仅从源中选择最新 zip文件。
答案 0 :(得分:2)
获取给定目录中具有最新修改日期的zip文件:
$source = "C:\temp"
$destination = "C:\temp\output"
$zipFile = Get-ChildItem -Path $source -Filter "*.zip" |
Sort-Object LastWriteTime -Descending |
Select-Object -First 1
Expand-Archive -Path $zipFile.FullName -DestinationPath $destination
这可以通过搜索所有zip文件,然后按修改后的日期降序对其进行排序,然后获取“第一个”(按定义的排序顺序)。
我还使用了Expand-Archive
命令将邮政编码提取到指定的目的地。如果您需要复制zip,那么首先使用Copy-Item
cmdlet就很容易了。
正如一些评论者指出的那样:Expand-Archive
是在PowerShell的第5版中引入的。
但是,获取“最新”文件的逻辑没有改变,可以很容易地引入到您现有的脚本中:
$zip = $shell.NameSpace($zipFile.FullName)