首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析变量Powershell

解析变量Powershell
EN

Stack Overflow用户
提问于 2020-02-21 12:03:14
回答 2查看 76关注 0票数 1

我有一个简单的脚本,我想向我展示一些结果,但是以虚拟机的名义,我只想说第一点,其他的一切都是因为它会产生大量的噪音。

代码语言:javascript
复制
$today = (get-date).Date
$backup = Get-VBRBackup | where {$_.info.jobname -eq "A. ProduccionInterna.Infraestructura Backup Copy"}
if ($backup) {
$backup.GetAllStorages() | where {$_.CreationTime.Date -eq $today} | select @{Name="Nombre de la VM"; Expression={$_.PartialPath[0]}}, @{Name="Size VM"; Expression={$_.Stats.BackupSize/1GB}} , @{Name="Deduplicacion"; Expression={$Session.BackupStats.DedupRatio/10}} , @{Name="Compress Ratio"; Expression={$Session.BackupStats.CompressRatio/10}} , @{Name="Fecha"; Expression={(get-date).Date}}
}

结果:

代码语言:javascript
复制
 f5downinxn.vm-37087D2020-02-21T030000_B816.vib

但是,我不会:

代码语言:javascript
复制
 f5downinxn

进入的链条似乎不起作用。

代码语言:javascript
复制
[0]

我也试过

代码语言:javascript
复制
(".")[1]

编辑

用我的代码:

代码语言:javascript
复制
Nombre de la VM : f5downinxn.vm-37087D2020-02-21T030000_B816.vib

有变动:

代码

代码语言:javascript
复制
$today = (get-date).Date
$backup = Get-VBRBackup | where {$_.info.jobname -eq "A. ProduccionInterna.Infraestructura Backup Copy"}
 if ($backup) {
$backup.GetAllStorages() | where {$_.CreationTime.Date -eq $today} | select @{Name="Nombre de la VM"; Expression={$_.PartialPath[0].split('.')[0]}}, @{Name="Size VM"; Expression={$_.Stats.BackupSize/1GB}} , @{Name="Deduplicacion"; Expression={$Session.BackupStats.DedupRatio/10}} , @{Name="Compress Ratio"; Expression={$Session.BackupStats.CompressRatio/10}} , @{Name="Fecha"; Expression={(get-date).Date}} 
}


Nombre de la VM : 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-21 13:50:54

.PartialPath属性是一个Veeam.Backup.Common.CPartialPath对象。表输出正在执行一些字符串转换魔术,但是底层对象是,而不是字符串。但是,Veeam.Backup.Common.CPartialPath有一个ToString()覆盖方法,可以简化此任务。

代码语言:javascript
复制
Select @{Name="Nombre de la VM"; Expression={$_.PartialPath.ToString().Split('.')[0]}}
票数 1
EN

Stack Overflow用户

发布于 2020-02-21 12:19:25

尝试在您的Select-Object中这样做,在这里,您目前只将$_.PartialPath作为VM名称返回:

代码语言:javascript
复制
$_.PartialPath.Split('.')[0]

这应该将PartialPath属性在.字符上的内容拆分为一个字符串数组,然后返回第一个字符串。

请注意,如果PartialPath包含没有.的字符串,则可能会出现错误,因为拆分将不会生成数组,而且[0]的使用也将无效。

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

https://stackoverflow.com/questions/60338299

复制
相关文章

相似问题

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