管道替换会丢弃我所有的数据吗?
Piping into replace discards all my data?
我运行下面的命令returns一长串虚拟机:
$vms = Get-AzureRmVM -status | select name,@{ n='IP Address'; e={"IP removed"}}, @{ n='OsType';
e={$_.StorageProfile.OsDisk.OsType}}, powerState
$vms
当我通过管道进行替换时,几乎没有剩余数据..
$vms = Get-AzureRmVM -status | select name,@{ n='IP Address'; e={"IP removed"}}, @{ n='OsType';
e={$_.StorageProfile.OsDisk.OsType}}, powerState | replace "VM Running", "poweredOn"
$vms
我什么也得不到。
您需要将 Select-Object
行的最后一部分从
更改为
powerState | replace "VM Running", "poweredOn"
进入:
@{Name = 'powerState'; Expression = { $_.powerState -replace "VM Running", "poweredOn"}}
创建另一个计算属性。
Replace 不是@Lee_Dailey 指出的语句、cmdlet、函数、别名或可执行程序。有一个替换运算符可以用正则表达式替换,替换方法可以在没有正则表达式的情况下执行此操作。 (令我惊讶的是它甚至没有显示错误)。所以这里没有replace with Regex所以我推荐用replace方法替换:
$vms = Get-AzureRmVM -status | select-object name,@{ n='IP Address'; e={"IP removed"}}, @{ n='OsType';
e={$_.StorageProfile.OsDisk.OsType}}, @{n='powerState';e={$_.powerState.ToString().Replace("VM Running", "poweredOn")}}
$vms
Replace 是一个 windows 命令来替换文件。这不是你想要的。 https://ss64.com/nt/replace.html
我运行下面的命令returns一长串虚拟机:
$vms = Get-AzureRmVM -status | select name,@{ n='IP Address'; e={"IP removed"}}, @{ n='OsType';
e={$_.StorageProfile.OsDisk.OsType}}, powerState
$vms
当我通过管道进行替换时,几乎没有剩余数据..
$vms = Get-AzureRmVM -status | select name,@{ n='IP Address'; e={"IP removed"}}, @{ n='OsType';
e={$_.StorageProfile.OsDisk.OsType}}, powerState | replace "VM Running", "poweredOn"
$vms
我什么也得不到。
您需要将 Select-Object
行的最后一部分从
powerState | replace "VM Running", "poweredOn"
进入:
@{Name = 'powerState'; Expression = { $_.powerState -replace "VM Running", "poweredOn"}}
创建另一个计算属性。
Replace 不是@Lee_Dailey 指出的语句、cmdlet、函数、别名或可执行程序。有一个替换运算符可以用正则表达式替换,替换方法可以在没有正则表达式的情况下执行此操作。 (令我惊讶的是它甚至没有显示错误)。所以这里没有replace with Regex所以我推荐用replace方法替换:
$vms = Get-AzureRmVM -status | select-object name,@{ n='IP Address'; e={"IP removed"}}, @{ n='OsType';
e={$_.StorageProfile.OsDisk.OsType}}, @{n='powerState';e={$_.powerState.ToString().Replace("VM Running", "poweredOn")}}
$vms
Replace 是一个 windows 命令来替换文件。这不是你想要的。 https://ss64.com/nt/replace.html