我希望将write-host存储为多行的变量
因此,我希望包含下面的write-host部分,这样就可以将其复制并粘贴到循环的开头,从而更新某些参数。
这个脚本是检查一个文件,看看文件中有多少行,然后在每一行上执行一个函数,我想更新用户的进度,但是在循环期间,我想要更新进度。简单的进度条。
但是我无法做到这一点,所以我创建了一个变量来存储此信息并进行相应的更新。
varible只包含我想要更新的信息,请参见代码。
我尝试过以下几种方法:
用括号括起来,使用,更改为新行,并将语句括在()中。
$56 = (Write-Host "This is a test" -foregroundcolor green),
(Write-host "Same Test only bigger"-foregroundcolor red) ,
"No!",
"I am King" $King ++
#$56输出为
This is a test
Same Test only bigger我希望它只在我使用变量$56时显示,因为您可以看到,它拉出了没有该变量的写主机。
发布于 2019-02-14 21:45:14
我仍然认为一个函数可以做到这一点:
function Output {
param([int]$lineNumber)
switch ($lineNumber) {
1 {Write-Host "This is a test" -foregroundcolor green}
2 {Write-host "Same Test only bigger"-foregroundcolor red}
3 {"No!"}
4 {"I am King"}
}
}
PS H:\> Output 1
This is a test
PS H:\> Output 4
I am King我不知道King在这里是什么,但是如果你想使用它作为增量,那么你可以这样做:
PS H:\> $King = 1
PS H:\> Output $King
This is a test
PS H:\> $King++
PS H:\> output $King
Same Test only bigger发布于 2019-02-14 21:55:47
Write-Host不会将其输出作为对象返回;它绕过管道直接转到控制台,有效地“返回”一个空字符串。因此,不能将Write-Host的结果保存在变量中。
但是,您可以将脚本块保存在变量中,并且脚本块变量中的任何语句的执行都将延迟,直到使用&表达式调用变量,例如,
$fifty-six = { Write-Host "This is a test" -foregroundcolor green }
& $fifty-six然而,你应该仔细考虑你的目标是什么,以及是否没有更好的方法来做事情。如果您对跟踪函数的进度感兴趣,并且您使用的是PowerShell 3.0或更高版本,那么您可能希望改为查看Write-Progress。
https://stackoverflow.com/questions/54691589
复制相似问题