首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在变量中包含Write-host

在变量中包含Write-host
EN

Stack Overflow用户
提问于 2019-02-14 21:29:23
回答 2查看 509关注 0票数 0

我希望将write-host存储为多行的变量

因此,我希望包含下面的write-host部分,这样就可以将其复制并粘贴到循环的开头,从而更新某些参数。

这个脚本是检查一个文件,看看文件中有多少行,然后在每一行上执行一个函数,我想更新用户的进度,但是在循环期间,我想要更新进度。简单的进度条。

但是我无法做到这一点,所以我创建了一个变量来存储此信息并进行相应的更新。

varible只包含我想要更新的信息,请参见代码。

我尝试过以下几种方法:

用括号括起来,使用,更改为新行,并将语句括在()中。

代码语言:javascript
复制
$56 = (Write-Host "This is a test" -foregroundcolor green),
(Write-host "Same Test only bigger"-foregroundcolor red) , 
"No!",
"I am King" $King ++
#$56

输出为

代码语言:javascript
复制
This is a test
Same Test only bigger

我希望它只在我使用变量$56时显示,因为您可以看到,它拉出了没有该变量的写主机。

EN

回答 2

Stack Overflow用户

发布于 2019-02-14 21:45:14

我仍然认为一个函数可以做到这一点:

代码语言:javascript
复制
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在这里是什么,但是如果你想使用它作为增量,那么你可以这样做:

代码语言:javascript
复制
PS H:\> $King = 1

PS H:\> Output $King
This is a test

PS H:\> $King++

PS H:\> output $King
Same Test only bigger
票数 0
EN

Stack Overflow用户

发布于 2019-02-14 21:55:47

Write-Host不会将其输出作为对象返回;它绕过管道直接转到控制台,有效地“返回”一个空字符串。因此,不能将Write-Host的结果保存在变量中。

但是,您可以将脚本块保存在变量中,并且脚本块变量中的任何语句的执行都将延迟,直到使用&表达式调用变量,例如,

代码语言:javascript
复制
$fifty-six = { Write-Host "This is a test" -foregroundcolor green }
& $fifty-six

然而,你应该仔细考虑你的目标是什么,以及是否没有更好的方法来做事情。如果您对跟踪函数的进度感兴趣,并且您使用的是PowerShell 3.0或更高版本,那么您可能希望改为查看Write-Progress

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54691589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档