【发布时间】:2017-09-05 16:15:01
【问题描述】:
我正在尝试编写一个 powershell 脚本,该脚本从我的工件存储库中下载多个文件。我可以通过传递文件名来使用如下某种逻辑。
$files = @("test1.zip", "test.zip")
foreach($file in $files)
{
Invoke-WebRequest -Uri "$artifactory_url/$file" -OutFile "D:\download\$file"
}
但是,有没有什么方法可以下载所有不带名称的文件?我尝试使用 (*zip) 之类的通配符,但看起来 Invoke-webrequest 不接受通配符。并没有发现 Start-bittransfer cmdlet 以及文章https://blogs.technet.microsoft.com/heyscriptingguy/2012/08/17/use-powershell-3-0-to-easily-download-60-spanned-files 中所述的运气。
我能够使用以下命令在 repo 中提取文件列表
((Invoke-WebRequest $url).links | Where href -match "zip$").href
如何使用此命令下载文件?有没有更好的方法从工件存储库或 http 端点下载多个文件?我必须在多台服务器上执行此操作。所以,我没有看 jfrog cli 的用法。 提前致谢
【问题讨论】:
-
你试过
$file = ((Invoke-WebRequest $url).links ...,然后foreach($file in $files)? -
我希望您需要 enumerate 工件,然后单独下载它们。
-
@gms0ulman 是的,我尝试使用下面的代码 invoke-webrequest “$url”|select -exp links|where{$_.href -like "*.zip"}|select -exp href |foreach{start-bitstransfer $_ C:/users/my_home} 但是,它对我不起作用。
-
有什么理由不能使用 jfrog cli?如果你确实被 powershell 卡住了,你应该先做一个 AQL 搜索来检索文件列表,然后像现在这样枚举它
标签: powershell artifactory powershell-4.0