在PowerShell中用于脚本testing的等效回声
我想在PowerShell脚本中输出variables和值,方法是在整个脚本中设置标志并查看数据。
我将如何做到这一点?
例如,什么是PowerShell相当于下面的PHP代码?
echo "filesizecounter: " . $filesizecounter
有几种方法:
Write-Host
:直接写入控制台,不包含在函数/ cmdlet输出中。 允许设置前景色和背景色。
Write-Debug
:直接写入控制台,如果$DebugPreference
设置为继续或停止。
Write-Verbose
:如果$VerbosePreference
设置为Continue或Stop,则直接写入控制台。
后者是用于额外的可选信息,用于debugging的Write-Debug
debugging(所以似乎适合在这种情况下)。
其他 :在PSH2中(至less)使用cmdlet绑定的脚本将自动获取-Verbose
和-Debug
开关参数,在编译cmdlet和提供程序的本地启用Write-Verbose
和Write-Debug
(即覆盖首选variables)。
Powershell有一个别名映射回Write-Output
,所以:
echo "filesizecounter : $filesizecounter"
PowerShell插值,不是吗?
在PHP中
echo "filesizecounter: " . $filesizecounter
也可以写成:
echo "filesizecounter: $filesizecounter"
在PowerShell中,像这样的东西应该适合您的需求:
Write-Host "filesizecounter: $filesizecounter"
Write-Host "filesizecounter : " $filesizecounter
到目前为止,在PowerShell中回声最简单的方法就是创buildstring对象并让pipe道输出:
$filesizecounter = 8096 "filesizecounter : $filesizecounter"
当然,如果不使用Write- *方法,你会放弃一些灵活性。
echo是写入输出的别名,尽pipe它看起来与写入主机相同。
在PowerShell中,echo和Write-Host并不是什么区别? 。
echo是写入输出的别名,写入成功输出stream。 这允许输出通过pipe道进行处理或redirect到文件。 写主机直接写入控制台,所以输出不能被redirect/进一步处理。
我不知道这样做是否明智,但你可以写
"filesizecounter: " + $filesizecounter
它应该输出:
filesizecounter:值
试试Get-Content .\yourScript.PS1
,你会看到脚本的内容。
你也可以在你的脚本代码中插入这一行:
get-content .\scriptname.PS1 script code script code
….
写主机工作正常。
$Filesize = (Get-Item $filepath).length; Write-Host "FileSize= $filesize";