web-dev-qa-db-fra.com

Écho équivalent dans PowerShell pour les tests de script

Je voudrais sortir les variables et les valeurs dans un script PowerShell en configurant des indicateurs et en visualisant les données capitalisées tout au long du script.

Comment je ferais ça?

Par exemple, quel serait l'équivalent de PowerShell avec le code PHP suivant?

echo "filesizecounter: " . $filesizecounter 
198
phill

Il y a plusieurs façons:

Write-Host : écrit directement sur la console, non inclus dans la sortie de la fonction/cmdlet. Permet de définir la couleur de premier plan et d'arrière-plan.

Write-Debug : écrivez directement sur la console si $DebugPreference défini sur Continuer ou sur Arrêter.

Write-Verbose : écrivez directement sur la console si $VerbosePreference défini sur Continuer ou sur Arrêter.

Ce dernier est destiné à des informations optionnelles supplémentaires, _Write-Debug_ pour le débogage (semblerait donc convenir dans ce cas).

Supplémentaire : Dans PSH2 (au moins), les scripts utilisant la liaison d'applet de commande obtiendront automatiquement les paramètres de commutateur _-Verbose_ et _-Debug_, activant localement _Write-Verbose_ et _Write-Debug_ (c'est-à-dire remplacer les variables de préférence) comme le font les cmdlets et les fournisseurs compilés.

245
Richard

Powershell a un écho d'alias de mappage sur Write-Output, donc:

echo "filesizecounter : $filesizecounter"

103
Justin R.

PowerShell interpole, n'est-ce pas?

En PHP

echo "filesizecounter: " . $filesizecounter 

peut également être écrit comme:

echo "filesizecounter: $filesizecounter" 

Dans PowerShell, quelque chose comme ceci devrait répondre à vos besoins:

Write-Host "filesizecounter: $filesizecounter"
26
John T
Write-Host "filesizecounter : " $filesizecounter 
22
aphoria

De loin, le moyen le plus simple de faire écho à powershell consiste simplement à créer l'objet chaîne et à laisser le pipeline le sortir:

$filesizecounter = 8096
"filesizecounter : $filesizecounter"

Bien sûr, vous perdez de la flexibilité lorsque vous n’utilisez pas les méthodes Write- *.

13
Goyuix

echo est un alias vers 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 dans le flux de sortie Success. Cela permet de traiter les sorties via des pipelines ou de les rediriger vers des fichiers. Write-Host écrit directement sur la console, de sorte que la sortie ne puisse plus être redirigée/traitée.

9
Paul Fijma

L'écriture-hôte fonctionne bien.

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

Je ne sais pas s'il est sage de le faire, mais vous pouvez simplement écrire

"filesizecounter: " + $filesizecounter

Et il devrait sortir:

filesizecounter: valeur

4
Peter

Essayez Get-Content .\yourScript.PS1 et vous verrez le contenu de votre script.

aussi vous pouvez insérer cette ligne dans votre code script:

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

....

2
Luis