A execução de um executável do PowerShell não funciona com espaços no caminho

3

No prompt do PowerShell:

\Windows\system32\mspaint.exe

executará o Paint. Então vai

Invoke-Expression -command "\Windows\system32\mspaint.exe"

mas se houver um espaço no caminho, o PowerShell cospe o modelo fictício, 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?

    
por John Hartley 23.11.2011 / 06:34

2 respostas

2

De acordo com o este artigo sobre o Technet, encerrando 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 ele não funcionará.

Por exemplo:

Invoke-Expression -command & "\install\sub directory\test.bat"
    
por 23.11.2011 / 06:42
2

A maneira mais simples é usar o operador invoke:

&'String containing the path'

Nota: para iniciar um executável Invoke-Expression é realmente o cmdlet errado, é melhor usar Start-Process .

    
por 23.11.2011 / 09:45

Tags