Echo equivalent in PowerShell for script testing
我想通过设置标志并查看整个脚本中的数据来在PowerShell脚本中输出变量和值。
我该怎么做?
例如,相当于以下PHP代码的PowerShell将是什么?
1 | echo"filesizecounter:" . $filesizecounter |
有几种方法:
后者用于额外的可选信息,
附加功能:(至少)在PSH2中,使用cmdlet绑定的脚本将自动获取
Powershell具有别名回显到
PowerShell插值,不是吗?
在PHP中
1 | echo"filesizecounter:" . $filesizecounter |
也可以写成:
1 | echo"filesizecounter: $filesizecounter" |
在PowerShell中,类似这样的东西应该适合您的需求:
1 | Write-Host"filesizecounter: $filesizecounter" |
1 | Write-Host"filesizecounter :" $filesizecounter |
到目前为止,在powershell中进行回显的最简单方法是创建字符串对象,然后由管道将其输出:
1 2 | $filesizecounter = 8096 "filesizecounter : $filesizecounter" |
当然,当不使用Write- *方法时,您确实会放弃一些灵活性。
尽管它看起来与Write-Host相同,但echo是Write-Output的别名。
在PowerShell中,echo和Write-Host之间没有什么区别?
echo是Write-Output的别名,它写入成功输出流。这允许通过管道处理输出或将其重定向到文件中。 Write-Host直接写入控制台,因此无法进一步重定向/处理输出。
写主机工作正常。
1 2 | $Filesize = (Get-Item $filepath).length; Write-Host"FileSize= $filesize"; |
我不知道这样做是否明智,但是您可以写
1 | "filesizecounter:" + $filesizecounter |
它应该输出:
filesizecounter: value
尝试
您也可以在您的股票代码中插入以下行:
1 2 3 | get-content .\scriptname.PS1 script code script code |
....
PowerShell具有几个常见命令(如
1 | Get-Alias echo |
得到回应:
1 2 3 | CommandType Name Version Source ----------- ---- ------- ------ Alias echo -> Write-Output |
甚至Get-Alias也具有别名
1 | gal echo |
其他别名在这里列出:
https://docs.microsoft.com/zh-cn/powershell/scripting/learn/using-familiar-command-names?view=powershell-6