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'.

  ˚

See also PowerShell syntax

PowerShell Home   • Syntax   • Loops   • Recursive  • What If   • Functions  • Replace

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

WebComputerperformance.co.uk

 

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

Please report a broken link, or an error.