Je joue avec les scripts PowerShell et ils fonctionnent très bien. Cependant, je me demande s'il existe un moyen d'afficher également toutes les commandes qui ont été exécutées, comme si vous les tapiez manuellement vous-même. Ce serait similaire à "echo on" dans les fichiers batch. J'ai regardé les arguments de ligne de commande PowerShell, les applets de commande, mais je n'ai rien trouvé d'évident. Merci!
La commande suivante affichera chaque ligne de script dans Write-Debug-
Set-PSDebug -Trace 1
De man Set-PSDebug
Lorsque le paramètre Trace est défini sur 1, chaque ligne de script est tracée lors de son exécution. Lorsque le paramètre est défini sur 2, les affectations de variables, les appels de fonction et les appels de script sont également tracés. Si le paramètre Step est spécifié, vous êtes invité avant l'exécution de chaque ligne du script.
Où j'ai utilisé echo on
en CMD, j'utilise maintenant Write-Verbose
et Set-PSDebug -Step
au lieu. Ce ne sont pas les mêmes, mais ils sont plus puissants s'ils sont maniés habilement.
Laid:
PS > get-content foo.ps1|foreach-object{$_;invoke-expression "$_"}
$procs=get-process powershell
foreach($proc in $procs){$proc.processname}
powershell
PS > get-content foo.ps1
$procs=get-process powershell
foreach($proc in $procs){$proc.processname}
PS >
Le problème avec ce qui précède est que si vous avez des commandes multilignes comme celle-ci:
foreach($proc in $procs){
$proc.processname
}
Ce qui précède échouera avec mon exemple ci-dessus s'il est placé dans foo.ps1 avec cette structure ...
help about_History
Vous expliquera toutes les commandes et
Get-History [options]
renverra la liste complète à manipuler\afficher, etc.