稍微修改powershell命令

时间:2018-11-08 17:01:52

标签: powershell copy zip

此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文件。

1 个答案:

答案 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)