之前的做法是将 PowerShell 脚本的代码拼接成一个大字符串,然后通过在 cmd 中运行 powershell 去直接运行。现在觉得,多少有些脱裤子放屁。其实可以直接在 cmd 中设置脚本运行策略。改进后的脚本如下:
首先是 run.bat
@echo off
FOR /F "tokens=* USEBACKQ" %%F IN (`powershell Get-ExecutionPolicy`) DO (
SET policy=%%F
)
powershell Set-ExecutionPolicy Bypass
set /p script=Enter PowerShell script to run:
powershell %~dp0\%script%
powershell Set-ExecutionPolicy %policy%
pause
echo on
接下来,所需要运行的任意 ps1 脚本放在和上面的 run.bat
相同的目录下,run.bat
运行起来后,直接在终端中输入要运行的脚本文件名就可以调用了。