首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用powershell安装具有azure命令的数组

如何用powershell安装具有azure命令的数组
EN

Stack Overflow用户
提问于 2021-04-13 00:28:10
回答 1查看 139关注 0票数 0

我是个十足的Powershell新手,还在学习。我正在尝试获取一个Azure get作业列表,这些工作已经在一个get应用程序中停止了。我理解当我运行命令az webapp web作业连续列表时,我得到了大量的数组数据。

我很难把它分开,有人能告诉我如何把它作为个人工作和他们的财产来分配吗?我尝试了$webjobs = ($webname.Split('}')),它不会分割这个巨大的数组。

这是我目前的代码

$groups = get-AzResourceGroup ={$_.ResourceGroupName -like "Dev"} foreach($group in $groups){

代码语言:javascript
复制
Write-Host -ForegroundColor Cyan "processing resourceGroup" $group.ResourceGroupName
$webApps = Get-AzWebApp -ResourceGroupName $group.ResourceGroupName

foreach($webApp in $webApps){
    
   write-host -ForegroundColor Yellow $webApp.Name        
    
   $webname = (az webapp webjob continuous list --name $webApp.Name --resource-group $group.ResourceGroupName --query '[].name' -o tsv)
   $webstatus = (az webapp webjob continuous list --name $webApp.Name --resource-group $group.ResourceGroupName --query '[].status' -o tsv)
   
   Write-host $webname
   Write-host $webstatus
           
    }
    }

我得到的结果是。

处理hubv3-dev-app-hub/ApplicationInsightsProfiler3开发中心- dev -app-hub 3-app-集线器/数据hub 3-dev-集线器/ProcessToolData hub 3-dev-app/ToolDataNotiitieshubv3-dev-app/UploadLasToSftp hubv3-dev-app-authservice/ApplicationInsightsProfiler3 hubv3-dev-app/DaaS运行停止运行hubv3-dev-app-authservice hubv3-dev-app-authservice/ApplicationInsightsProfiler3运行hubv3-dev-app-api hubv3-dev-app-api/ApplicationInsightsProfiler3运行

我希望实现的是

运行hubv3 3的集线器-集线器-集线器/数据运行hubv3 3-app-集线器/ProcessToolData运行hubv3 3-dev/ToolDataNotifications运行hubv3 3-dev/UploadLasToSftp运行hubv3 3-dev-app-集线器/DaaS停止运行

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-13 05:36:37

您所得到的结果将用于编写的代码。考虑到tsv文档,意味着$webname$webstatus是数组。编写Write-Host $webstatus时,它将打印数组中的所有数据,在本例中:

代码语言:javascript
复制
Running
Running
Running
Running
Running
Stopped

你能做的是:

代码语言:javascript
复制
$webname = (az webapp webjob continuous list --name $webApp.Name --resource-group $group.ResourceGroupName --query '[].name' -o tsv)
$webstatus = (az webapp webjob continuous list --name $webApp.Name --resource-group $group.ResourceGroupName --query '[].status' -o tsv)

for ($i = 0; $i -lt $webname.length; $i++) {
    Write-Host $webname[$i]
    Write-Host $webstatus[$i]
}

但是应该所做的是使用另一个查询:[].[name, status]。看看jmesPath

这样做更好,因为您只执行了一个请求,而不是两个请求,而且它应该具有您所期望的格式,即名称和状态数组。

代码语言:javascript
复制
$webjobInfo = (az webapp webjob continuous list --name $webApp.Name --resource-group $group.ResourceGroupName --query '[].[name, status]' -o tsv)

Write-Host $webJobInfo
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67067239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档