我想通过设置标志并查看整个脚本中的数据矩阵来在 PowerShell 脚本中输出变量和值。
我该怎么做?
例如,与以下 PHP 代码等效的 PowerShell 是什么?
echo "filesizecounter: " . $filesizecounter
有几种方法:
Write-Host
:直接写入控制台,不包含在函数/cmdlet 输出中。允许设置前景色和背景色。
Write-Debug
:如果 $DebugPreference
设置为 Continue 或 Stop,则直接写入控制台。
Write-Verbose
:如果 $VerbosePreference
设置为 Continue 或 Stop,则直接写入控制台。
后者用于提供额外的可选信息,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 相同。
这不是 What is the difference between echo and Write-Host in PowerShell?。
echo 是 Write-Output 的别名,它写入 Success 输出流。这允许通过管道处理输出或将输出重定向到文件中。 Write-Host 直接写入控制台,因此无法进一步重定向/处理输出。
写主机工作正常。
$Filesize = (Get-Item $filepath).length;
Write-Host "FileSize= $filesize";
还应该提到的是,Set-PSDebug 类似于老式的 echo on
批处理命令:
Set-PSDebug -Trace 1
此命令将导致显示执行脚本的每一行:
当 Trace 参数的值为 1 时,每行脚本都会在运行时被跟踪。当参数的值为 2 时,还会跟踪变量赋值、函数调用和脚本调用。如果指定了 Step 参数,则在脚本的每一行运行之前都会提示您。
PowerShell 具有多个常用命令(如 echo
)的别名。在 PowerShell 中键入以下内容:
Get-Alias echo
得到回应:
CommandType Name Version Source
----------- ---- ------- ------
Alias echo -> Write-Output
甚至 Get-Alias 也有一个别名 gal -> Get-Alias
。您可以编写 gal echo
来获取 echo
的别名。
gal echo
cat dir mount rm cd echo move rmdir chdir erase popd sleep clear h ps sort cls history pushd tee copy kill pwd type del lp r write diff ls ren
我不知道这样做是否明智,但你可以写
"filesizecounter: " + $filesizecounter
它应该输出:
文件大小计数器:值
"filesizecounter: $filesizecounter"
甚至更短。
尝试 Get-Content .\yourScript.PS1
,您将看到脚本的内容。
你也可以在你的脚本代码中插入这一行:
get-content .\scriptname.PS1
script code
script code
……
不定期副业成功案例分享