Como executar um script PowerShell?
-
Tenho um guião chamado myscript. ps1
- Tenho todos os quadros necessários instalados
- eu estabeleci essa coisada Política de execução
- segui as instruções nesta página de Ajuda MSDN
e estou a tentar geri-lo assim:
powershell.exe 'C:\my_path\yada_yada\run_import_script.ps1'
(com ou sem--noexit
)
que não devolve exactamente nada, excepto que o nome do ficheiro é saída.
Nenhum erro, nenhuma mensagem, nada. Oh, quando eu adiciono -noexit
, o a mesma coisa acontece, mas eu mantenho-me dentro do PowerShell e tenho de sair manualmente.
o ficheiro ps1 deve executar um programa, e devolver o nível de erro dependente da saída desse programa. Mas tenho a certeza que ainda nem cheguei lá.
O que estou a fazer de errado?13 answers
- lançar o PowerShell do Windows, e esperar um momento para que o comando PS apareça
-
Navegar para a pasta onde vive o programa
PS> cd C:\my_path\yada_yada\ (enter)
-
Execute o programa:
PS> .\run_import_script.ps1 (enter)
Ou: você pode executar o script PowerShell de cmd.exe
Assim:
powershell -noexit "& ""C:\my_path\yada_yada\run_import_script.ps1""" (enter)
De acordo com este post no blog aqui
Ou podes até executar o teu script Powershell da tua aplicação C#: -)Execute Assíncronamente programas PowerShell da sua aplicação C#
Se está em PowerShell 2.0, use PowerShell.parâmetro do ficheiro-EXE para invocar um programa de outro ambiente como o cmd.exe por exemplo:
Powershell.exe -File C:\my_path\yada_yada\run_import_script.ps1
Se quiser executar um programa sem modificar a Política de execução por omissão do programa, poderá usar a opção bypass ao lançar o PowerShell do Windows.
powershell [-noexit] -executionpolicy bypass -File <Filename>
Tipo:
powershell -executionpolicy bypass -File .\Test.ps1
Nota: aqui Test.ps1
está o script PowerShell.
powershell.exe -noexit "& 'c:\Data\ScheduledScripts\ShutdownVM.ps1'"
E colocar esta linha em um arquivo de lote, e isso funciona.
Se você só tem PowerShell 1.0 , isto parece fazer o truque bem o suficiente:
powershell -command - < c:\mypath\myscript.ps1
Canaliza o ficheiro do programa para a linha de comandos PowerShell.
Uma maneira fácil é usar PowerShell ISE , abrir um programa, executar e invocar o seu programa, função...
Usando o ficheiro cmd (BAT):
@echo off
color 1F
echo.
C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File "PrepareEnvironment.ps1"
:EOF
echo Waiting seconds
timeout /t 10 /nobreak > NUL
Se precisar de Executar como administrador:
- faça um atalho que aponte para a linha de comandos (dei-lhe o nome Comando Administrativo Pronto)
- abra as propriedades do atalho e vá para a página de compatibilidade
- na secção do nível de privilégios, certifique-se que a opção ao lado de "executar este programa como administrador" está assinalada
-
Indique o caminho do script, isto é, a configuração do caminho pelo cmd:
$> . c:\program file\prog.ps1
-
Execute a função do ponto de entrada de PowerShell:
Por exemplo,
$> add or entry_func or main
Se o seu programa tiver o nome com a extensão .ps1
e estiver numa janela PowerShell, basta executar ./myscript.ps1
(assumindo que o ficheiro está na sua pasta de trabalho).
No caso de querer executar o programa Powershell com o escalonador de Tarefas do Windows, por favor siga os passos abaixo:
Criar uma tarefa
Set
Program/Script
toPowershell.exe
Set
Arguments
to-File "C:\xxx.ps1"
Use o parâmetro-File na frente do nome do ficheiro. As citações fazem o powershell pensar que é uma cadeia de comandos.