我的计划如下:
我的 .ps1 文件名为
Start.ps1
,批处理文件名为 Start.bat
。
在当前的批量配置中,不会以管理员身份执行PS窗口,也不会允许脚本执行。
PowerShell -NoProfile -ExecutionPolicy Unrestriced -Command "& {Start-Process PowerShell -ArgumentList '-NoProfile -ExecutionPolicy Unrestricted -File ""C:\Users\user\Desktop\Install\StartNew.ps1""' -Verb RunAs}"
当目录为1:1时它确实有效,但在不同的机器上它不会开始安装chocolatey和winget。
将
Start.bat
和 Start.ps1
文件放在同一目录中。
在
Start.bat
中使用以下内容:
@echo off & setlocal
:: Determine the full path to the companion .ps1 file (Start.ps1)
:: based on the full path of this batch file (Start.bat)
set "PS1File=%~dpn0.ps1"
:: No reference %PS1File% as part of the PowerShell command.
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "Start-Process -Verb RunAs PowerShell -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File \"%PS1File%\"'"