Como iniciar o script do PowerShell a partir da linha de comando do SO?

3

Eu tenho um script PowerShell para criar meus arquivos de projeto e gostaria de ter a capacidade de executá-lo a partir da linha de comando do meu gerenciador de arquivos (e, possivelmente, criar um atalho para esse script para que eu possa começar a compilar a partir do meu desktop )
Alguma maneira de fazer isso?

    
por skevar7 24.07.2010 / 10:59

2 respostas

1

Se você quiser fazer com que os scripts do PowerShell se comportem um pouco mais como típicos scripts cmd \ bat onde você pode simplesmente digitar o nome e executá-los, você pode configurar a associação e o tipo de arquivo para informar ao shell para passar os parâmetros corretos para Powershell e defina a variável patheext para que você tenha que digitar o nome do script em vez do nome completo.ext.

Primeiro, verifique se a extensão .ps1 está associada ao Powershell - deve ser, mas vale a pena garantir:

assoc .ps1

Isso deve lhe dar algo parecido com o seguinte:

.ps1=Microsoft.PowerShellScript.1

Agora, substitua o comportamento de abertura padrão (aberto com o bloco de notas) para este tipo de arquivo com a sintaxe da linha de comando do Powershell para chamar um script. Precisamos adicionar mais aspas ao redor do parâmetro & 1 para manipular caminhos com espaços.

ftype Microsoft.PowerShellScript.1="c:\windows\system32\WindowsPowerShell\v1.0\powershell.exe" "& '&1'"

Se você quiser que os scripts do Powershell funcionem como outros arquivos de script, modifique a variável de ambiente pathext . Defina isso idealmente em via Meu computador - > Propriedades - > Configurações avançadas do sistema - > Guia Avançado - > Variáveis de ambiente, mas você pode definir isso temporariamente em um shell cmd via:

set pathext=.ps1;%pathext%
    
por 24.07.2010 / 14:45
2

Uma maneira de fazer isso é criar um arquivo em lotes com os comandos apropriados.

build.bat

%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -command "& 'c:\scripts\build_project.ps1' "

Você terá que passar os argumentos da linha de comando do arquivo em lote para o script se o seu script ps os usar. Você também terá que carregar todos os módulos powershell que seu script usa:

Add-PSSnapin Module-Name
    
por 24.07.2010 / 11:14