У меня есть сценарий PowerShell для создания файлов проекта, и я хотел бы иметь возможность запускать его из командной строки моего файлового менеджера (и, возможно, сделать ярлык для этого сценария, чтобы я мог начать сборку со своего рабочего стола)
Как это сделать?
Один из способов сделать это - создать командный файл с соответствующими командами.
build.bat
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -command "& 'c:\scripts\build_project.ps1' "
Вам нужно будет передать аргументы командной строки из командного файла в сценарий, если ваш сценарий ps использует их. Вам также нужно будет загрузить все модули PowerShell, которые использует ваш скрипт:
Add-PSSnapin Module-Name
Если вы хотите, чтобы сценарии PowerShell вели себя немного больше как типичные сценарии cmd \ bat, где вы можете просто ввести имя и заставить их выполнить, вы можете настроить ассоциацию и тип файла, чтобы указать оболочке передать правильные параметры в Powershell и установить переменная patheext, поэтому вам просто нужно ввести имя сценария, а не полное имя. ext.
Сначала проверьте, что расширение .ps1 связано с Powershell - это должно быть, но стоит убедиться:
assoc .ps1
Это должно дать вам что-то вроде следующего:
.ps1=Microsoft.PowerShellScript.1
Теперь переопределите поведение открытия по умолчанию (открытие с помощью блокнота) для этого типа файла с помощью синтаксиса командной строки Powershell для вызова сценария. Нам нужно добавить дополнительные кавычки вокруг параметра & 1 для обработки путей с пробелами.
ftype Microsoft.PowerShellScript.1="c:\windows\system32\WindowsPowerShell\v1.0\powershell.exe" "& '&1'"
Если вы действительно хотите, чтобы сценарии Powershell действовали как другие файлы сценариев, измените патекст переменная окружения. В идеале установите это через My Computer-> Properties-> Advanced System Settings-> Advanced tab-> Environment Variables, но вы можете временно установить это в оболочке cmd через:
set pathext=.ps1;%pathext%