我试过一个简单的:如何在PowerShell中下载整个Dropbox目录?
wget https://www.dropbox.com/sh/dropboxStuff/dropboxStuff?dl=1 -O DirectoryName
但它的下载的zip文件。
- 什么是下载和解压只有powershell 命令的最佳方式?
- 这可以在一行吗?
我试过一个简单的:如何在PowerShell中下载整个Dropbox目录?
wget https://www.dropbox.com/sh/dropboxStuff/dropboxStuff?dl=1 -O DirectoryName
但它的下载的zip文件。
要使用PowerShell 5的Expand-Archive
cmdlet可以做到这一点的一条线:
Invoke-WebRequest -Uri https://www.dropbox.com/sh/dropboxStuff/dropboxStuff?dl=1 -O temp.zip; Get-Item temp.zip | Expand-Archive -DestinationPath "FolderName"; Remove-Item temp.zip
您可能能够通过管道Invoke-WebRequest
到Expand-Archive
与-PassThru
做到这一点,但我一直没能使其工作还没有。
在PowerShell中V5
Expand-Archive c:\a.zip -DestinationPath c:\a
要知道你的PS vesion
$PSVersionTable.PSVersion
如果你没有PS V5
Add-Type -AssemblyName System.IO.Compression.FileSystem
function Unzip
{
param([string]$zipfile, [string]$outpath)
[System.IO.Compression.ZipFile]::ExtractToDirectory($zipfile, $outpath)
}
Unzip "C:\a.zip" "C:\a"
wget是在PowerShell中下载的最佳方式吗?我怎样才能将下载的结果传送给这个命令? –
@GiulioCaccin Expand-Archive接受管道输入。所以你可以做'Get-Item [zipfile] |展开-Archive -DestinationPath C:\ etc' – TheIncorrigible1
@GiulioCaccin我建议在'wget'上使用'Invoke-WebRequest'。默认情况下,'wget'是该cmdlet的别名,但不应该在脚本中使用别名,并且如果您没有该别名,并且实际上使用'wget',则它将成为一个外部依赖项,这会使您的脚本便携性较差。 – alroc
什么版本的PowerShell?较新的版本有一个解压缩zip文件的cmdlet,旧版本需要一些COM对象的工作。 – alroc
增加了power shell和windows版本的标签。谢谢@alroc –