phi*_*ill 214 powershell
我想通过设置标志并在整个脚本中查看数据来输出PowerShell脚本中的变量和值.
我该怎么做?
例如,PowerShell与以下PHP代码等效的是什么?
echo "filesizecounter: " . $filesizecounter
Run Code Online (Sandbox Code Playgroud)
Ric*_*ard 257
有几种方法:
Write-Host:直接写入控制台,不包含在function/cmdlet输出中.允许设置前景色和背景色.
Write-Debug:直接写入控制台,如果$DebugPreference设置为继续或停止.
Write-Verbose:直接写入控制台,如果$VerbosePreference设置为继续或停止.
后者用于额外的可选信息,Write-Debug用于调试(因此在这种情况下似乎适合).
附加:在PSH2中(至少)使用cmdlet绑定的脚本将自动获取-Verbose和-Debug切换参数,本地启用Write-Verbose和Write-Debug(即覆盖首选项变量)作为编译的cmdlet和提供程序.
Jus*_* R. 107
Powershell有一个别名映射echo Write-Output,所以:
echo "filesizecounter : $filesizecounter"
Joh*_*n T 29
PowerShell插值,不是吗?
在PHP中
echo "filesizecounter: " . $filesizecounter
Run Code Online (Sandbox Code Playgroud)
也可以写成:
echo "filesizecounter: $filesizecounter"
Run Code Online (Sandbox Code Playgroud)
在PowerShell中,这样的东西应该适合您的需求:
Write-Host "filesizecounter: $filesizecounter"
Run Code Online (Sandbox Code Playgroud)
aph*_*ria 23
Write-Host "filesizecounter : " $filesizecounter
Run Code Online (Sandbox Code Playgroud)
Goy*_*uix 14
到目前为止,在powershell中回显的最简单方法是创建字符串对象并让管道输出它:
$filesizecounter = 8096
"filesizecounter : $filesizecounter"
Run Code Online (Sandbox Code Playgroud)
当然,在不使用Write-*方法时,您确实放弃了一些灵活性.
小智 9
echo是Write-Output的别名,尽管它看起来与Write-Host相同.
它不是PowerShell中echo和Write-Host有什么区别?.
echo是Write-Output的别名,它写入Success输出流.这允许通过管道处理输出或重定向到文件.Write-Host直接写入控制台,因此无法进一步重定向/处理输出.
小智 8
写主机工作正常.
$Filesize = (Get-Item $filepath).length;
Write-Host "FileSize= $filesize";
Run Code Online (Sandbox Code Playgroud)
PowerShell 有几个常见命令的别名,例如echo. 在 PowerShell 中键入以下内容:
Get-Alias echo
Run Code Online (Sandbox Code Playgroud)
得到回应:
CommandType Name Version Source
----------- ---- ------- ------
Alias echo -> Write-Output
Run Code Online (Sandbox Code Playgroud)
甚至 Get-Alias 也有一个别名gal -> Get-Alias。您可以编写gal echo以获取 的别名echo。
gal echo
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
它应该输出:
文件大小计数器:值
还应该提到的是,Set-PSDebug类似于老式的echo on批处理命令:
Set-PSDebug -Trace 1
Run Code Online (Sandbox Code Playgroud)
此命令将导致显示执行脚本的每一行:
当
Trace参数值为 时1,会在脚本的每一行运行时对其进行跟踪。当参数值为 时2,还会跟踪变量赋值、函数调用和脚本调用。如果Step指定了参数,则会在脚本的每一行运行之前提示您。
| 归档时间: |
|
| 查看次数: |
619260 次 |
| 最近记录: |