scripts - script powershell windows 7




Como executar um script do PowerShell (9)

Como executo um script do PowerShell?

  • Eu tenho um script chamado myscript.ps1
  • Eu tenho todas as estruturas necessárias instaladas
  • Eu defini essa coisa de política de execução
  • Eu segui as instruções nesta página de ajuda do MSDN e estou tentando executá-lo da seguinte forma: powershell.exe 'C:\my_path\yada_yada\run_import_script.ps1' (com ou sem --noexit )

que retorna exatamente nada, exceto que o nome do arquivo é gerado.

Nenhum erro, nenhuma mensagem, nada. Ah, quando eu adiciono -noexit , a mesma coisa acontece, mas eu permaneço dentro do PowerShell e tenho que sair manualmente.

O arquivo .ps1 deve executar um programa e retornar o nível de erro dependendo da saída desse programa. Mas tenho certeza de que nem estou chegando lá ainda.

O que estou fazendo de errado?


  1. Inicie o Windows PowerShell e aguarde um momento para o prompt de comando do PS aparecer
  2. Navegue até o diretório onde o script está

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

    PS> .\run_import_script.ps1 (enter)

O que estou perdendo??

Ou: você pode executar o script do PowerShell a partir do cmd.exe seguinte forma:

powershell -noexit "& ""C:\my_path\yada_yada\run_import_script.ps1""" (enter)

de acordo com este post aqui

Ou você pode até mesmo executar o seu script Powershell a partir do seu aplicativo C # :-)

Executar de forma assíncrona scripts do PowerShell a partir do seu aplicativo C #


Bem fácil. Clique com o botão direito no arquivo .ps1 no Windows e, no menu shell, clique em Executar com o PowerShell .


Eu tive o mesmo problema, e tentei e tentei ... Finalmente eu usei:

powershell.exe -noexit "& 'c:\Data\ScheduledScripts\ShutdownVM.ps1'"

E coloque essa linha em um arquivo em lotes, e isso funciona.


Se o seu script for nomeado com a extensão .ps1 e você estiver em uma janela do PowerShell, basta executar ./myscript.ps1 (supondo que o arquivo esteja em seu diretório de trabalho).

Isso é verdade para mim de qualquer maneira no Windows 10 com a versão 5.1 do PowerShell, e acho que não fiz nada para tornar isso possível.


Se você quiser executar um script sem modificar a diretiva de execução de script padrão, poderá usar a opção de desvio ao iniciar o Windows PowerShell .

powershell [-noexit] -executionpolicy bypass -File <Filename>

Se você tiver apenas o PowerShell 1.0 , isso parece funcionar bastante bem:

powershell -command - < c:\mypath\myscript.ps1

Ele canaliza o arquivo de script para a linha de comando do PowerShell.


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


Usando o arquivo 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 você precisar executar como administrador :

  1. Faça um atalho apontado para o prompt de comando (denominei Prompt de Comando Administrativo)
  2. Abra as propriedades do atalho e vá para a guia Compatibilidade
  3. Na seção Nível de privilégio, verifique se a caixa de seleção ao lado de "Executar este programa como administrador" está marcada

  • Dê o caminho do script, isto é, caminho definido pelo cmd:

    $> . c:\program file\prog.ps1

  • Execute a função de ponto de entrada do PowerShell:

    Por exemplo, $> add or entry_func or main





scripting