解析变量 Powershell

Parsing Variable Powershell

我有一个简单的脚本,我想向我展示一些结果,但以虚拟机的名义,我只想要第一点,其他的都剩下了,因为它会产生很多噪音。

$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 : 

尝试在您的 Select-Object 中执行此操作,您目前 return 仅 $_.PartialPath 作为 VM 名称:

$_.PartialPath.Split('.')[0]

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

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

.PartialPath 属性 是一个 Veeam.Backup.Common.CPartialPath 对象。表格输出正在执行一些字符串转换魔术,但底层对象是 不是字符串 。然而,Veeam.Backup.Common.CPartialPath 有一个 ToString() 重写方法,可以使这个任务更容易。

Select @{Name="Nombre de la VM"; Expression={$_.PartialPath.ToString().Split('.')[0]}}