我想通过设置标志并在整个脚本中查看数据来输出PowerShell脚本中的变量和值.
我该怎么做?
例如,PowerShell与以下PHP代码等效的是什么?
echo "filesizecounter: " . $filesizecounter
Richard.. 257
有几种方法:
Write-Host
:直接写入控制台,不包含在function/cmdlet输出中.允许设置前景色和背景色.
Write-Debug
:直接写入控制台,如果$DebugPreference
设置为继续或停止.
Write-Verbose
:直接写入控制台,如果$VerbosePreference
设置为继续或停止.
后者用于额外的可选信息,Write-Debug
用于调试(因此在这种情况下似乎适合).
附加:在PSH2中(至少)使用cmdlet绑定的脚本将自动获取-Verbose
和-Debug
切换参数,本地启用Write-Verbose
和Write-Debug
(即覆盖首选项变量)作为编译的cmdlet和提供程序.
有几种方法:
Write-Host
:直接写入控制台,不包含在function/cmdlet输出中.允许设置前景色和背景色.
Write-Debug
:直接写入控制台,如果$DebugPreference
设置为继续或停止.
Write-Verbose
:直接写入控制台,如果$VerbosePreference
设置为继续或停止.
后者用于额外的可选信息,Write-Debug
用于调试(因此在这种情况下似乎适合).
附加:在PSH2中(至少)使用cmdlet绑定的脚本将自动获取-Verbose
和-Debug
切换参数,本地启用Write-Verbose
和Write-Debug
(即覆盖首选项变量)作为编译的cmdlet和提供程序.
Powershell有一个别名映射echo Write-Output
,所以:
echo "filesizecounter : $filesizecounter"
PowerShell插值,不是吗?
在PHP中
echo "filesizecounter: " . $filesizecounter
也可以写成:
echo "filesizecounter: $filesizecounter"
在PowerShell中,这样的东西应该适合您的需求:
Write-Host "filesizecounter: $filesizecounter"
Write-Host "filesizecounter : " $filesizecounter
到目前为止,在powershell中回显的最简单方法是创建字符串对象并让管道输出它:
$filesizecounter = 8096 "filesizecounter : $filesizecounter"
当然,在不使用Write-*方法时,您确实放弃了一些灵活性.
echo是Write-Output的别名,尽管它看起来与Write-Host相同.
它不是PowerShell中echo和Write-Host有什么区别?.
echo是Write-Output的别名,它写入Success输出流.这允许通过管道处理输出或重定向到文件.Write-Host直接写入控制台,因此无法进一步重定向/处理输出.
写主机工作正常.
$Filesize = (Get-Item $filepath).length; Write-Host "FileSize= $filesize";