Como executar um script PowerShell?

Como faço para 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?

Author: RBT, 2010-01-10

13 answers

  1. lançar o PowerShell do Windows, e esperar um momento para que o comando PS apareça
  2. Navegar para a pasta onde vive o programa

    PS> cd C:\my_path\yada_yada\ (enter)
    
  3. Execute o programa:

    PS> .\run_import_script.ps1 (enter)
    
O que me está a escapar??

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#

 561
Author: marc_s, 2017-05-17 06:34:45

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
 175
Author: Keith Hill, 2014-06-23 21:48:18

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>
 146
Author: Chingiz Musayev, 2011-01-30 22:23:06

Tipo:

powershell -executionpolicy bypass -File .\Test.ps1

Nota: aqui Test.ps1 está o script PowerShell.

 50
Author: Sudheesh, 2016-03-26 19:21:27
Tive o mesmo problema, e tentei e tentei... Finalmente usei:
powershell.exe -noexit "& 'c:\Data\ScheduledScripts\ShutdownVM.ps1'"

E colocar esta linha em um arquivo de lote, e isso funciona.

 25
Author: Dennis, 2014-11-30 23:27:07

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.
 20
Author: AndyM, 2014-11-30 23:27:46

Uma maneira fácil é usar PowerShell ISE , abrir um programa, executar e invocar o seu programa, função...

Enter image description here

 9
Author: Jose Evaristo Cepeda Barrera, 2017-03-02 10:29:56

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:

  1. faça um atalho que aponte para a linha de comandos (dei-lhe o nome Comando Administrativo Pronto)
  2. abra as propriedades do atalho e vá para a página de compatibilidade
  3. 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
 8
Author: Kiquenet, 2014-11-17 09:04:06
Muito fácil. Carregue com o botão direito no ficheiro .ps1 no Windows e no menu shell carregue em Executar com PowerShell.
 7
Author: electronictonic, 2017-03-02 10:27:56
  • 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

 6
Author: pkm, 2014-11-30 23:29:00

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).

[[3] isso é verdade para mim de qualquer maneira no Windows 10 com a versão PowerShell 5.1 de qualquer maneira, e eu não acho que eu fiz nada para torná-lo possível.
 5
Author: rainabba, 2017-03-02 10:28:31

No caso de querer executar o programa Powershell com o escalonador de Tarefas do Windows, por favor siga os passos abaixo:

  1. Criar uma tarefa

  2. Set Program/Script to Powershell.exe

  3. Set Arguments to -File "C:\xxx.ps1"

É de outro fio de resposta. https://stackoverflow.com/a/23954618/3378204
 2
Author: Gearon, 2018-05-24 08:07:34

Use o parâmetro-File na frente do nome do ficheiro. As citações fazem o powershell pensar que é uma cadeia de comandos.

 0
Author: Engineer, 2018-08-01 11:17:33