Bat 文件无法在没有硬编码目录的情况下启动 powershell 脚本

问题描述 投票:0回答:1

我的计划如下:

  1. 打开.bat文件
  2. 文件然后打开一个 PS 窗口,允许脚本执行并以管理员身份(!)
  3. 目录必须是可变的,才能在该文件夹中的任何 PC 上运行。
  4. 安装 Chocolatey 和 Winget 来安装应用程序。
  5. 必须没有用户输入。

我的 .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。

powershell batch-file
1个回答
0
投票
  • 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%\"'"
© www.soinside.com 2019 - 2024. All rights reserved.