批处理文件替换问题
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
我正在尝试通过使用批处理文件替换 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