是否可以创建一个可执行文件 file.exe
来自 PowerShell 脚本的文件?
最佳答案
不。至少现在还没有,而且在 PowerShell 的 5 个版本之后,似乎永远不可能。
我希望我可以就此搁笔,但其他人提供了一堆我觉得有必要解决的“解决方法”类型的答案:
您可以将您的 .ps1 脚本包装在另一种脚本类型中以使其可双击,您甚至可以生成一个嵌入脚本的可执行文件(请参阅此线程上的其他答案)……但那些“可执行文件”需要正确的版本PowerShell 已经存在于系统中,因此您不会通过这样做获得任何好处,并且您失去了 PowerShell 的许多功能(例如流式对象输出、帮助文档和自动参数处理以及用户的 Tab 补全) .
这是一个简单的 .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
我知道 ...
与 可移植 PowerShell ,可能可以打包一种自解压 zip 文件,其中包含正确版本的 PowerShell 和脚本并且可以工作。那是 不是 任何正常意义上的可执行文件——这有点像 Valve 决定只在拇指驱动器上发布 vmware 镜像作为他们让 Linux 用户玩半条命的解决方案。然而,该产品似乎被放弃了。
与 PrimalScript (或 PowerShell Studio )或 PowerGui 或 pShellExec ,您的脚本可以被加密,因此它可以防止窥探......但这基本上只是混淆,与批处理文件基本上没有区别,并且在某些方面更糟。
关于powershell - 从 PowerShell 脚本创建可执行的 .exe 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3759456/