16

cmd/batch file could turn on and turn off "echo". So in PowerShell, I have a bunch of "write-host" output, I want somewhere to turn on / off write-host for debugging convenience.

Does PowerShell has such a function?

wonea
  • 4,783
  • 17
  • 86
  • 139
vik santata
  • 2,989
  • 8
  • 30
  • 52

3 Answers3

9

The Set-PSDebug cmdlet has -Trace <int> parameter that can be used to same effect as echo on.

vonPryz
  • 22,996
  • 7
  • 54
  • 65
5

I recommend you simply put

| Out-Null

at the end of any line where privacy matters... it's more or less the same as putting...

@

... at the beginning of any 'batch' line where you want output hidden from users.

Hardryv
  • 755
  • 7
  • 12
3

You should use Write-Verbose instead of Write-Host, this will make your debugging data controlled by the variable $VerbosePreference. This variable has the same value set as $ErrorActionPreference, and the default is SilentlyContinue, which means that no verbose output is generated. You can set this to Continue and then have your verbose output visible.

Vesper
  • 18,599
  • 6
  • 39
  • 61