No prompt do PowerShell:
\Windows\system32\mspaint.exe
executará o Paint. O mesmo acontecerá
Invoke-Expression -command "\Windows\system32\mspaint.exe"
mas se houver um espaço no caminho, o PowerShell cospe o manequim, por exemplo
Invoke-Expression -command "\install\sub directory\test.bat"
Que reclama:
The term '\install\sub' is not recognized as the name of a cmdlet, function, script file, or operable program.
o que estou perdendo?
Responder1
De acordo comesseartigo no Technet, colocar o caminho entre aspas duplas não é suficiente.
O caminho que você está tentando usar deve ter um&(e comercial) na frente do diretório ou não funcionará.
Por exemplo:
Invoke-Expression -command & "\install\sub directory\test.bat"
Responder2
A maneira mais simples é usar o operador Invoke:
&'String containing the path'
Observe que para iniciar um executável Invoke-Expression
é realmente o cmdlet errado, é melhor usar Start-Process
.