Estou tentando executar um arquivo EXE usando um script do PowerShell. Se eu usar a linha de comando, funcionará sem problemas (primeiro forneço o nome do executável e uma série de parâmetros para invocá-lo):
"C:\Program Files\Automated QA\TestExecute 8\Bin\TestExecute.exe" C:\temp\TestProject1\TestProject1.pjs /run /exit /SilentMode
Mas fazer exatamente a mesma coisa dentro de um script retorna um erro:
O termo '"C: \ Arquivos de programas \ Automated QA \ TestExecute 8 \ Bin \ TestExecute.exe" C: \ temp \ TestProject1 \ TestProject1.pjs / run / exit / SilentMode' não é reconhecido como o nome de um cmdlet, função , arquivo de script ou programa operável. Verifique a grafia do nome ou, se um caminho foi incluído, verifique se o caminho está correto e tente novamente.
(Eu invoquei o comando usando o operador "&".)
Como posso resolver este problema?
Respostas:
ou
ATUALIZAÇÃO: desculpe, perdi "(invoquei o comando usando a frase" & "operador)". Tive esse problema quando estava avaliando o caminho dinamicamente. Experimente a construção Invoke-Expression:
fonte
Parece que você está especificando o EXE e seu primeiro argumento em uma única string, por exemplo;
'"C:\Program Files\Automated QA\TestExecute 8\Bin\TestExecute.exe" C:\temp\TestProject1\TestProject1.pjs /run /exit /SilentMode'
. Isso não vai funcionar. Em geral, você invoca um comando nativo que tem um espaço em seu caminho, assim:Isso é
&
Espera ser seguido por uma string que identifica um comando: cmdlet, função, exe relativa nativa ou caminho absoluto.Depois de fazer isso funcionar:
Comece a trabalhar citando os argumentos conforme necessário. Embora pareça que seus argumentos devem estar bem (sem espaços, sem outros caracteres especiais interpretados pelo PowerShell).
fonte
.\foo.exe
e também pode usar um caminho relativo..\..\foo.exe
e um caminho relativo com espaços& '..\..\path with spaces\foo.exe'
.cmd /c "C:\temp\strarc.exe -cjd:M:\ | C:\temp\strarc.exe -s:8 -xd:N:\"
.No Powershell, faça cd para o local do arquivo .exe. Por exemplo:
cd C: \ Usuários \ Administradores \ Downloads
PS C: \ Usuários \ Administradores \ Downloads> & '. \ Aaa.exe'
O instalador aparece e segue as instruções na tela.
fonte
Demo:
fonte
Não sendo um desenvolvedor, encontrei uma solução ao executar vários comandos ps em uma linha. Por exemplo:
Colocando um "(aspas duplas) antes do & (e comercial), ele executa o executável. Em nenhum dos exemplos que encontrei isso foi mencionado. Sem as aspas duplas, o prompt do ps é aberto e espera pela entrada.
fonte