2011-01-27 2 views
1

Я пытаюсь запустить простой скрипт powershell из пакетного файла. После поиска в Интернете советуем установить политику с помощью Set-ExecutionPolicy.Скрипт Powershell не запускается из командного файла

Я сделал это и используя Get-ExecutionPolicy, политика была изменена.

Однако запуск этого командного файла приводит к диалогу «Открыть с», а не к выполнению сценария.

Batch:

%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe ^&'./script.psl' 

Powershell:

Write-Host "This is a message" 

Я выборку как на Windows 7 и Server 2008 R2. Оба имеют одинаковый результат. Что мне не хватает?

ответ

1

Чтобы запустить файл сценария из командной строки, используйте параметр -file параметра powershell.exe.

%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -file './script.psl' 
+1

Я получаю сообщение об ошибке, делая это: Processing -file «» ./script.psl «» не удалось, потому что файл не имеет расширение».PS1. Укажите действительное имя файла сценария PowerShell и повторите попытку. – Tezza

+0

В любом случае вы не можете указать имя файла, указанное одиночными кавычками. По крайней мере, не из 'cmd'. Правила синтаксического анализа PowerShell применяются * внутри * оболочки, но не при вызове с аргументами. – Joey

+1

@Tezza. Вы получите 'failed, потому что у файла нет расширения .ps1 ', если, как указывал @Joey, вы указываете путь сценария в командной строке ** или **, вы указываете скрипт с расширением, отличным от '.ps1'. В этом случае оба условия верны. Обратите внимание, что в вашем вопросе и распространенном на этот ответ расширение скрипта является '.psl' вместо' .ps1' (последний символ является строчным буквой 'L', а не цифрой' 1'). – BACON

0

Чтобы запустить файл сценария из * CMD-файл, используйте параметр -file powershell.exe и двойные кавычки:

%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -file "./script.ps1" 

Когда вы будете использовать только один цитата в пакетном файле вы можно ожидать, как ошибка PowerShell:

обработки -file «» ./build.ps1 «» не удалось, потому что файл не имеет с расширением».PS1. Укажите действительный файл сценария Windows PowerShell и повторите попытку.

Смежные вопросы