PowerShell中的Echo等效脚本测试

时间:2009-04-01 22:49:07

标签: powershell

我想通过设置标志并在整个脚本中查看数据来输出PowerShell脚本中的变量和值。

我该怎么做?

例如,PowerShell与以下PHP代码等效的是什么?

echo "filesizecounter: " . $filesizecounter 

11 个答案:

答案 0 :(得分:235)

有几种方法:

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

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

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

后者用于提供额外的可选信息,Write-Debug用于调试(在这种情况下似乎很合适)。

附加:在PSH2中(至少)使用cmdlet绑定的脚本会自动获取-Verbose-Debug切换参数,在本地启用Write-Verbose和{{ 1}}(即覆盖首选项变量)作为编译的cmdlet和提供程序。

答案 1 :(得分:94)

Powershell有一个别名映射回显到Write-Output,所以:

echo "filesizecounter : $filesizecounter"

答案 2 :(得分:23)

PowerShell插值,不是吗?

在PHP中

echo "filesizecounter: " . $filesizecounter 

也可以写成:

echo "filesizecounter: $filesizecounter" 

在PowerShell中,类似这样的内容应该符合您的需求:

Write-Host "filesizecounter: $filesizecounter"

答案 3 :(得分:21)

Write-Host "filesizecounter : " $filesizecounter 

答案 4 :(得分:13)

到目前为止,在powershell中回显的最简单方法是创建字符串对象并让管道输出它:

$filesizecounter = 8096
"filesizecounter : $filesizecounter"

当然,在不使用Write- *方法时,你会放弃一些灵活性。

答案 5 :(得分:9)

echo是Write-Output的别名,尽管它看起来与Write-Host相同。

它不是 What is the difference between echo and Write-Host in PowerShell?

echo是Write-Output的别名,它写入Success输出流。这允许通过管道处理输出或重定向到文件。 Write-Host直接写入控制台,因此输出不能再被重定向/处理。

答案 6 :(得分:7)

写主机工作正常。

$Filesize = (Get-Item $filepath).length;
Write-Host "FileSize= $filesize";

答案 7 :(得分:4)

我不知道这样做是否明智,但你可以写

"filesizecounter: " + $filesizecounter

它应输出:

  

filesizecounter:value

答案 8 :(得分:3)

尝试Get-Content .\yourScript.PS1,您将看到脚本的内容。

您也可以在您的脚本代码中插入此行:

get-content .\scriptname.PS1
script code
script code

...

答案 9 :(得分:2)

还应该提到的是,Set-PSDebug与老式的echo on批处理命令类似:

Set-PSDebug -Trace 1

此命令将显示执行脚本的每一行:

Trace参数的值为1时,脚本运行的每一行都会被跟踪。当参数的值为2时,还将跟踪变量分配,函数调用和脚本调用。如果指定了Step参数,则会在脚本的每一行运行之前提示您。

答案 10 :(得分:0)

PowerShell具有一些常见命令(例如echo)的别名。在PowerShell中键入以下内容:

Get-Alias echo

获得回复:

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Alias           echo -> Write-Output

即使Get-Alias也具有别名gal -> Get-Alias。您可以编写gal echo来获取echo的别名。

gal echo

其他别名在这里列出: https://docs.microsoft.com/en-us/powershell/scripting/learn/using-familiar-command-names?view=powershell-6

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