Écho équivalent dans PowerShell pour les tests de script

Je voudrais sortir des variables et des valeurs dans un script PowerShell en configurant des indicateurs et en affichant les données dans le script.

Comment pourrais-je faire ça?

Par exemple, quel serait le PowerShell équivalent au code PHP suivant?

echo "filesizecounter: " . $filesizecounter 

Il y a plusieurs façons:

Write-Host : Ecrivez directement sur la console, non incluse dans la sortie de 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 Continue ou Stop.

Write-Verbose : Ecrivez directement sur la console si $VerbosePreference défini sur Continue ou Stop.

Ce dernier est destiné à des informations supplémentaires facultatives, Write-Debug pour le débogage (semble donc convenir dans ce cas).

Supplémentaire : dans PSH2 (au moins), les scripts utilisant la liaison de cmdlet obtiendront automatiquement les parameters de commutation -Verbose et -Debug , activant localement Write-Verbose et Write-Debug (remplaçant les variables de préférence) comme le font les applets de commande et les fournisseurs compilés.

Powershell a un alias mapping echo sur Write-Output , donc:

echo "filesizecounter : $filesizecounter"

PowerShell interpole, n’est-ce pas?

En PHP

 echo "filesizecounter: " . $filesizecounter 

peut aussi être écrit comme:

 echo "filesizecounter: $filesizecounter" 

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

 Write-Host "filesizecounter: $filesizecounter" 
 Write-Host "filesizecounter : " $filesizecounter 

Le moyen le plus simple de faire écho dans powershell est de créer l’object ssortingng et de le laisser sortir par le pipeline:

 $filesizecounter = 8096 "filesizecounter : $filesizecounter" 

Bien entendu, vous ne faites pas preuve de souplesse lorsque vous n’utilisez pas les méthodes Write- *.

echo est un alias de Write-Output, bien qu’il ressemble à Write-Host .

Ce n’est pas la différence Quelle est la différence entre echo et Write-Host dans PowerShell? .

echo est un alias pour Write-Output, qui écrit dans le stream de sortie Success. Cela permet de traiter la sortie via des pipelines ou de la redirect vers des fichiers. Write-Host écrit directement sur la console afin que la sortie ne puisse plus être redirigée / traitée.

Je ne sais pas si c’est sage de le faire, mais vous pouvez simplement écrire

 "filesizecounter: " + $filesizecounter 

Et il devrait sortir:

filesizecounter: valeur

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

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

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

….

Le Write-host fonctionne bien.

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