首页 > 解决方案 > ls 进入解压目录

问题描述

使用 PowerShell,我正在下载并提取一个包含目录和另一个文件的文件(它基本上来自https://aka.ms/downloadazcopy-v10-windows)。我希望能够在提取后进入目录。

所以,在 PS 中,我正在c:\AzCopyTest下载文件。它正在同一位置提取。这是它的代码:

$URL = "https://aka.ms/downloadazcopy-v10-windows"
New-Item -ItemType Directory -Path c:\AzCopyTest
$Destination = "c:\AzCopyTest\zzz.zip"
$WebClient = New-Object -TypeName System.Net.WebClient
$WebClient.DownloadFile($URL, $Destination).

$ExtractLocation = "c:\AzCopyTest"
$ExtractShell = New-Object -ComObject Shell.Application
$file = $ExtractShell.NameSpace($Destination).Items()
$ExtractShell.NameSpace($ExtractLocation).CopyHere($file)

提取完成后如何进入文件夹?仅供参考,我不想ls直接(或手动)进入它。我希望能够列出该目录中的项目并获得第一个目录。azcopy_windows_amd64_10.3.4是什么目录称为 BTW。现在,当 MS 发布一个新版本(比如 10.3.5)时,该目录将被重命名,我不想重新进入并手动更改它。你知道我要去哪里了..

我知道Get-ChildItem -Path ("$ExtractLocation") -Recurse会列出目录和子目录中的项目。但不幸的是,它并没有达到我的目的。

任何帮助是极大的赞赏!

标签: powershelldirectoryunzip

解决方案


我试过这个: Get-ChildItem -Path $ExtractLocation -Recurse -Directory -Force -ErrorAction SilentlyContinue | Select-Object).Name它奏效了。

仅供参考,稍后,如果 MS 决定在压缩文件中添加另一个目录,您可以简单地执行以下操作:

Get-ChildItem -Path $ExtractLocation -Recurse -Directory -Force -ErrorAction SilentlyContinue | Select-Object).Name[<position_of_the_directory_starting_from_0]


推荐阅读