【问题标题】:conversion batch to powerhsell autoreboot将批处理转换为 powershell 自动重启
【发布时间】:2020-02-10 13:15:05
【问题描述】:

我必须转换旧的批处理文件以安装新 PC,所有文件都运行良好,直到我不得不重新启动自动重启并强制 GPupdate。 我被这行代码卡住了

%windir%\System32\reg.exe ADD HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce /v EnableLUA /t REG_SZ /d %~dp0AfterBoot.ps1 /f

我收到错误代码无法加载模块“%windir%”

我对脚本比较陌生,我可以在 powershell 中进行管理,但其他类型的脚本对我来说是一个不同的世界。

提前谢谢你

【问题讨论】:

  • PoSh 中的环境变量是通过 $env:EnvVarName 访问的,而不是 CMD/Bat 代码使用的 %EnvVarName%。 [咧嘴]

标签: powershell batch-file


【解决方案1】:

在批处理脚本中,变量包含在百分比字符中。 %windir%是系统环境变量,通常指的是C:\Windows。要设置批处理变量,不使用百分比。哦,交互式版本和脚本版本的语法也不同。

Powershell 可以通过$env: 范围访问环境变量。因此$env:WINDIR 将返回 Windows 的安装目录。

如今,在其他位置安装 Windows 已很少见。大约 20 多年前,在 Windows NT 4.0 和 Windows 2000 时代,许多 NT 安装都在 C:\WINNT 中,因此需要一个环境变量来指定目录。安装程序实际上要求提供安装位置。 Windows 2008 仅通过脚本安装支持备用位置。

【讨论】:

    猜你喜欢
    • 2012-01-10
    • 1970-01-01
    • 2012-03-08
    • 2014-06-13
    • 1970-01-01
    • 2019-12-24
    • 2013-02-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多