Нет.По крайней мере, пока, и после 5 версий PowerShell это кажется маловероятным.
Хотелось бы просто оставить все как есть, но другие люди предоставили кучу ответов типа «обходной путь», которые я чувствую себя вынужденнымипо адресу:
Вы можете обернуть свой сценарий .ps1 в другой тип сценария, чтобы сделать его двойным щелчком, и вы даже можете сгенерировать исполняемый файл со встроенным сценарием (см. другие ответы наэтот поток) ... но эти "исполняемые файлы" требуют правильной версии PowerShell, чтобы уже присутствовать в системе, так что вы ничего не получаете, делая это, и теряете много функцийPowerShell (например, вывод потокового объекта, справочная документация и автоматическая обработка параметров с завершением табуляции для пользователей).
Вот простая оболочка для пакетного файла .cmd (вы можете расширить ее, чтобы разрешить параметры):
REM <#
copy %0 %0.ps1
PowerShell.exe -ExecutionPolicy Unrestricted -NoProfile -Command "&{Set-Alias REM Write-Host; .\%0.ps1}"
del %0.ps1
exit
REM #>
### Your PowerShell script goes below here.
### I've put a couple of lines as an example ...
ls | sort length -desc | select -first 5 | ft
ps | sort ws -desc | select -first 10 | ft
Я знаю ...
С Portable PowerShell , возможно, будет возможно упаковать что-то вродеf-распаковка zip, которая будет содержать правильную версию PowerShell и скрипт и будет работать.Это , а не исполняемый файл в любом обычном смысле этого слова - это немного похоже на то, если бы Valve решила просто отправить образ vmware на флэш-накопитель в качестве своего решения, позволяющего пользователям Linux играть в Half Life.Однако продукт кажется заброшенным.
С PrimalScript (или PowerShell Studio ) или PowerGui или pShellExec , вашСкрипт может быть зашифрован, так что он немного защищен от посторонних глаз ... но это в основном просто запутывание, и, по сути, ничем не отличается от командного файла, а в некоторых отношениях хуже.