批处理文件替换问题

Batch file replacing issue

我正在尝试通过使用批处理文件替换 C:\Windows\System32\GroupPolicy\Machine\Scripts 中的 scripts.ini 文件来更改我的组策略。批处理文件位于我桌面上名为 replacer 的文件夹中,自定义 scripts.ini 位于同一文件夹中。当我右键单击批处理文件和 "Run as administrator" 时,它突然找不到位于同一文件夹中的 scripts.ini 文件。当我不以管理员身份 运行 时,它会找到它,但无法替换组策略中的 scripts.ini 文件。

编辑: 这是代码(1 行):

xcopy /s/y scripts.ini C:\Windows\System32\GroupPolicy\Machine\Scripts

当您通过双击 运行 批处理脚本时,当前目录将是脚本所在的文件夹。

但是当您 运行 通过鼠标右键单击作为管理员的脚本时,当前目录是其他目录,通常是 C:\wINDOWS\system32

您的脚本可以使用 %~dp0 获取脚本安装位置的完整路径,因此您只需在源文件前加上该路径即可:

xcopy /s/y "%~dp0scripts.ini" C:\Windows\System32\GroupPolicy\Machine\Scripts

如果您有依赖于当前目录的其他命令,那么我建议您改用 PUSHD 来更改当前目录

pushd "%~dp0"
xcopy /s/y scripts.ini C:\Windows\System32\GroupPolicy\Machine\Scripts