我想在PowerShell脚本中通过设置标志输出变量和值,并在整个脚本中查看数据。

我该怎么做呢?

例如,PowerShell与下面的PHP代码有什么等价之处?

echo "filesizecounter: " . $filesizecounter 

当前回答

到目前为止,在powershell中最简单的方法是创建字符串对象,让管道输出它:

$filesizecounter = 8096
"filesizecounter : $filesizecounter"

当然,当不使用Write-*方法时,您确实放弃了一些灵活性。

其他回答

echo是Write-Output的别名,尽管它看起来和Write-Host一样。

PowerShell中echo和Write-Host的区别是什么?

echo是Write-Output的别名,它写入Success输出流。这允许通过管道处理输出或重定向到文件中。Write-Host直接写入控制台,因此输出不能再被重定向/处理。

试试Get-Content .\yourScript。PS1,你会看到你的脚本的内容。

你也可以在你的代码中插入这一行:

get-content .\scriptname.PS1
script code
script code

....

有几种方法:

Write- host:直接写入控制台,不包括在function/cmdlet输出中。允许设置前景色和背景色。

写调试:如果$DebugPreference设置为继续或停止,则直接写入控制台。

Write- verbose:如果$VerbosePreference设置为继续或停止,则直接写入控制台。

后者用于提供额外的可选信息,Write-Debug用于调试(因此似乎适合这种情况)。

附加:在PSH2(至少)脚本中,使用cmdlet绑定将自动获得-Verbose和-Debug开关参数,本地启用Write-Verbose和Write-Debug(即覆盖首选项变量),就像编译的cmdlet和提供者所做的那样。

PowerShell是插补的,不是吗?

在PHP中

echo "filesizecounter: " . $filesizecounter 

也可以写成:

echo "filesizecounter: $filesizecounter" 

在PowerShell中,这样的东西应该适合您的需求:

Write-Host "filesizecounter: $filesizecounter"

我不知道这样做是否明智,但你可以写

"filesizecounter: " + $filesizecounter

它应该输出:

filesizecounter:价值