it-swarm-pt.tech

Como executar um script do PowerShell

Como executo um script do PowerShell?

  • Eu tenho um script chamado myscript.ps1
  • Eu tenho todas as estruturas necessárias instaladas
  • Eu definir essa política de execução coisa
  • Eu segui as instruções em esta 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 adiciono -noexit, acontece a mesma coisa, mas permaneço no 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?

617
Pekka 웃
  1. Inicie o Windows PowerShell e aguarde um momento para o prompt do comando 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 em cmd.exe assim:

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

de acordo com este post do blog 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 do seu aplicativo C #

652
marc_s

Se você estiver no PowerShell 2.0, use o parâmetro -File do PowerShell.exe para invocar um script de outro ambiente, como o cmd.exe, por exemplo:

Powershell.exe -File C:\my_path\yada_yada\run_import_script.ps1
193
Keith Hill

Se você quiser executar um script sem modificar a política de execução de scripts padrão, poderá usar a opção bypass ao iniciar Windows PowerShell .

powershell [-noexit] -executionpolicy bypass -File <Filename>
162
Chingiz Musayev

Tipo:

powershell -executionpolicy bypass -File .\Test.ps1

NOTA: Aqui Test.ps1 é o script do PowerShell.

59
Sudheesh

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.

27
Dennis

Se você tiver apenas PowerShell 1.0 , isso parece fazer o truque bem o suficiente:

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

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

21
AndyM

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

11
electronictonic

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

 Enter image description here

10

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 de executar como administrador :

  1. Faça um atalho apontado para o prompt de comando (eu o chamei de 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
9
Kiquenet
  • 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

7
pkm

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.

6
rainabba

Caso você queira executar um script do PowerShell com o Agendador de Tarefas do Windows, siga as etapas abaixo:

  1. Crie uma tarefa

  2. Definir Program/Script para Powershell.exe

  3. Definir Arguments para -File "C:\xxx.ps1"

É de outra resposta,Como executo um script do PowerShell automaticamente usando o agendador de tarefas do Windows?.

5
Gearon

Use o parâmetro -File na frente do nome do arquivo. As citações fazem o PowerShell pensar que é uma sequência de comandos.

1
Engineer