Dynamically generate command-line command, then invoke using powershell

Viewed 35894

Using powershell, you can use the '&' character to run another application and pass in parameters.

A simple example.

$notepad = 'notepad'
$fileName = 'HelloWorld.txt'

# This will open HelloWorld.txt
& $notepad $fileName   

This is good. But what if I want to use business logic to dynamically generate a command string? Using the same simple example:

$commandString = @('notepad', 'HelloWorld.txt') -join ' ';
& $commandString

I get the error:

The term 'notepad HelloWorld.txt' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

In my real example I'm trying to dynamically add or remove options to the final command line string. Is there a way I can go about this?

2 Answers
Related