我的命令中没有几个Powershell脚本。 我可以将Powershell脚本转换为一个exe文件吗?我需要将其设置为按顺序运行。例如,使用第一个脚本安装后,需要先安装第二个脚本,然后再安装3、4、5个脚本。
答案 0 :(得分:1)
在最简单的情况下,您可以使用以下方法将脚本合并到单个脚本中,然后将其打包为可执行文件:
$scripts = 'script1.ps1', 'script2.ps1', 'script3.ps1'
(Get-Item $scripts | ForEach-Object {
"& {{`n{0}`n}}" -f (Get-Content -Raw $_.FullName)
}) -join "`n`n" > 'combined.ps1'
请注意,这是一种简单但可扩展的方法:按照书面规定,不支持参数,也没有错误处理:原始脚本的各个内容仅按顺序执行(&
),如下所示:脚本块({ ... }
)。
您可以使用PS2EXE-GUI项目的combined.ps1
将组合的脚本combined.exe
编译为可执行文件,例如ps2exe.ps1
,如下所示:脚本(流行的原始但过时的PS2EXE项目的更新版本和功能更全面的版本)。
# Create a PSv2-compatible executable.
# Omit -runtime20 to create an executable for the same PowerShell version
# that runs the script.
ps2exe -inputFile combined.ps1 -outputFile combined.exe -runtime20
注意事项:通常,运行生成的可执行文件需要在执行计算机上安装PowerShell,但由于要定位-runtime20
-努力成为v2 -compatible- .NET Framework 2.0 CLR也必须安装(请注意,它也随.NET Framework 3.5 一起提供),在最新版本中默认不再适用Windows。