Windows PowerShell


PowerShell Scripting  -WhatIf and -Confirm

Introduction to PowerShell Scripting -WhatIf and -Confirm

WhatIf and confirm are two great commands for testing complicated scripts without risking the code running amok.  For example, if you decide to delete files by using a script containing wildcards, there could be all manner of unexpected side effects.  By employing PowerShell, and appending -whatIf you get a preview of would happen without risking any damage.

WhatIf Topics

 ♣

Mission to delete files

Let us take a real life example, we wish to delete files, but because we are using wildcards we are concerned about deleting the wrong type of file.  Instead of gung-ho Guy deleting the files - ready or not, we will take the cautious approach and append -whatIf.  The result is PowerShell completes the command and shows us the result, but does not delete any files.  Incidentally, I cannot find a delete verb in PowerShell, there is however, a remove verb.

-whatIf example

By adding -whatIf at the end of the command we are saying to PowerShell: 'Just test, don't actually make any permanent changes'.  Please note, there could be serious consequences if you don't use the -whatIf switch.  If you don't understand what you are doing, you could delete all your .txt files.

# PowerShell script featuring -whatIf
get-Childitem c:\ -include *.txt -recurse | remove-Item -whatIf

A breakdown of what the above script achieves

get-Childitem  (Rather like dir)
c:\ (Location to start)
-include *.txt  (The pattern to look for)
-recurse (Search subdirectories)
| remove-Item (The equivalent of Delete)
-whatIf (PowerShell please test, but don't actually complete the operation, in this case, just show me which files with a .txt extension would be deleted if I removed the -whatIf).

Another example of -whatIf

-confirm example

Here is another parameter that you append to a 'normal' script - confirm.  It really is a case of confirm by name, and confirm by nature.  PowerShell says to you: 'Do you really want to do this?'

# PowerShell script featuring -confirm
get-Childitem c:\ -include *.txt -recurse | remove-Item -confirm

The result of -confirm is that PowerShell presents you with choices, however, remember this is now 'live' therefore if you press [Y] or [A] then files will be deleted.

[Y] Yes [A] Yes to all  [N] No  [L] No to all [S] Suspend

Summary of -whatIf and -confirm in PowerShell

Once you have used -whatIf and -confirm you will think, 'Why don't all scripting languages have these safety features'.

Guy Recommends: SolarWinds Engineer's Toolset v10Engineer's Toolset v10

The Engineer's Toolset v10 provides a comprehensive console of utilities for troubleshooting computer problems.  Guy says it helps me monitor what's occurring on the network, and the tools teaches me more about how the system literally operates.

There are so many good gadgets, it's like having free rein of a sweetshop. Thankfully the utilities are displayed logically: monitoring, discovery, diagnostic, and Cisco tools.  Download your copy of the Engineer's Toolset v 10

See more PowerShell examples for syntax advice

PowerShell Home  • Syntax  • -f format  • Out-Gridview  • Format-Table  • RegEx  • Get-Date  • WhatIf

Please write in if you see errors of any kind.  Please report any factual mistakes, grammatical errors or broken links, I will be happy to not only to correct the fault, but also to give you credit.

Download my ebook:Getting Started with PowerShell
Getting Started with PowerShell - only $9.25

You get 36 topics organized into these 3 sections:
   1) Getting Started
   2) Real-life tasks
   3) Examples of Syntax.

In addition to the ebook, you get a PDF version of this  Introduction to PowerShell ebook  It runs to 120 pages of A4.

 *


Google

Web  This website

Review of Orion NPMGuy Recommends: Orion's NPM - Network Performance Monitor

Orion's performance monitor is designed for detecting network outages. A network-centric view make it easy to see what's working, and what needs your attention.

This utility guides you through troubleshooting by indicating whether the root cause is faulty equipment or resource overload.

Download a free trial of the Network Performance Monitor

 

Home Copyright © 1999-2010 Computer Performance LTD All rights reserved

Please report a broken link, or an error.