Équivalent Echo en PowerShell pour les tests de script
je voudrais sortir des variables et des valeurs dans un script PowerShell en mettant en place des drapeaux et en voyant les données matriculer tout au long du script.
Comment faire?
par exemple, Quel serait L'équivalent PowerShell du code PHP suivant?
echo "filesizecounter: " . $filesizecounter
9 réponses
il y a plusieurs façons:
Write-Host
: Ecrivez directement sur la console, non inclus dans la sortie fonction/cmdlet. Permet de régler la couleur du premier plan et du fond.
Write-Debug
: écrivez directement sur la console, si $DebugPreference
est réglé pour continuer ou arrêter.
Write-Verbose
: écrivez directement à la console, si $VerbosePreference
est réglée pour continuer ou S'arrêter.
ce dernier est destiné à des informations optionnelles supplémentaires, Write-Debug
pour le débogage (donc semblerait correspondre dans ce cas).
supplémentaire : en PSH2 (au moins) les scripts utilisant cmdlet binding obtiendront automatiquement les paramètres de commutation -Verbose
et -Debug
, en activant localement les paramètres Write-Verbose
et Write-Debug
(c'est-à-dire en variables de préférence) comme le font les cmdlets compilés et les fournisseurs.
Powershell est un alias de la cartographie de l'écho à Write-Output
, donc:
echo "filesizecounter : $filesizecounter"
PowerShell interpolate, n'est-ce pas?
en PHP
echo "filesizecounter: " . $filesizecounter
peut aussi s'écrire comme:
echo "filesizecounter: $filesizecounter"
en PowerShell quelque chose comme ceci devrait convenir à vos besoins:
Write-Host "filesizecounter: $filesizecounter"
de loin la façon la plus facile de faire écho dans powershell, est juste créer l'objet string et laisser le pipeline le sortir:
$filesizecounter = 8096
"filesizecounter : $filesizecounter"
bien sûr, vous renoncez à une certaine flexibilité lorsque vous n'utilisez pas les méthodes Write -*.
echo est l'alias de Write-Output bien qu'il ressemble à Write-Host .
ce n'est pas Quelle est la différence entre echo et Write-Host dans PowerShell? .
echo est un alias pour Write-Output, qui écrit au flux de sortie de succès. Cela permet de traiter la sortie par des pipelines ou de la rediriger dans des fichiers. Ecrire-Host écrit directement sur la console, de sorte que la sortie ne peut plus être redirigée/traitée.
Je ne sais pas s'il est sage de le faire, mais vous pouvez juste écrire""
"filesizecounter: " + $filesizecounter
et il devrait sortir:
filesizecounter: valeur
essayez Get-Content .\yourScript.PS1
et vous verrez le contenu de votre script.
vous pouvez aussi insérer cette ligne dans votre code de prescription:
get-content .\scriptname.PS1
script code
script code
....
l'écriture-hôte de travail amende.
$Filesize = (Get-Item $filepath).length;
Write-Host "FileSize= $filesize";