在PowerShell中用于脚本testing的等效回声

我想在PowerShell脚本中输出variables和值,方法是在整个脚本中设置标志并查看数据。

我将如何做到这一点?

例如,什么是PowerShell相当于下面的PHP代码?

echo "filesizecounter: " . $filesizecounter 

有几种方法:

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

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

Write-Verbose :如果$VerbosePreference设置为Continue或Stop,则直接写入控制台。

后者是用于额外的可选信息,用于debugging的Write-Debugdebugging(所以似乎适合在这种情况下)。

其他 :在PSH2中(至less)使用cmdlet绑定的脚本将自动获取-Verbose-Debug开关参数,在编译cmdlet和提供程序的本地启用Write-VerboseWrite-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";