我有一个简单的脚本,我想向我展示一些结果,但是以虚拟机的名义,我只想说第一点,其他的一切都是因为它会产生大量的噪音。
$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}}
}结果:
f5downinxn.vm-37087D2020-02-21T030000_B816.vib但是,我不会:
f5downinxn进入的链条似乎不起作用。
[0]我也试过
(".")[1]编辑
用我的代码:
Nombre de la VM : f5downinxn.vm-37087D2020-02-21T030000_B816.vib有变动:
代码
$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 : 发布于 2020-02-21 13:50:54
.PartialPath属性是一个Veeam.Backup.Common.CPartialPath对象。表输出正在执行一些字符串转换魔术,但是底层对象是,而不是字符串。但是,Veeam.Backup.Common.CPartialPath有一个ToString()覆盖方法,可以简化此任务。
Select @{Name="Nombre de la VM"; Expression={$_.PartialPath.ToString().Split('.')[0]}}发布于 2020-02-21 12:19:25
尝试在您的Select-Object中这样做,在这里,您目前只将$_.PartialPath作为VM名称返回:
$_.PartialPath.Split('.')[0]这应该将PartialPath属性在.字符上的内容拆分为一个字符串数组,然后返回第一个字符串。
请注意,如果PartialPath包含没有.的字符串,则可能会出现错误,因为拆分将不会生成数组,而且[0]的使用也将无效。
https://stackoverflow.com/questions/60338299
复制相似问题