Cas*_*ers 0 powershell if-statement count write-host
我正在编写一个具有大量输出的脚本,并且可以使用多个计算机名称.输出通知计算机名称,然后是有关该特定计算机的大量信息.我希望在#上面和下面有一系列s,它在每个信息部分之前宣布计算机名称,但是想知道我是否可以将#s的数量与提供的计算机名称的长度相同(s ).例如:
######## COMPNAME ########
要么
############## LONGERCOMPNAME ##############
我宁愿不必为每种可能的情况都有一个if else,例如
if ($compname.length -eq "8") {
Write-Host "########"
Write-Host "$compname"
Write-Host "########"
} elseif ($compname -eq "9") {
Write-Host "#########"
Write-Host "$compname"
Write-Host "#########"
Run Code Online (Sandbox Code Playgroud)
等等.如果必须,我会,它只是那些左右的十个.或者我可以使用一定数量的#s,它们总是至少覆盖计算机名称的最大长度.
你会喜欢PowerShell的这个功能.你可以"乘"一个字符串.
试试这个:
$sep = '@'
Write-Output ($sep*5)
$names = "Hello World", "me too", "goodbye"
$names | % {
Write-Output ($sep*($_.Length))
Write-Output $_
Write-Output ($sep*($_.Length))
}
Run Code Online (Sandbox Code Playgroud)
OUTPUT
@@@@@
@@@@@@@@@@@
Hello World
@@@@@@@@@@@
@@@@@@
me too
@@@@@@
@@@@@@@
goodbye
@@@@@@@
Run Code Online (Sandbox Code Playgroud)