批处理文件替换问题

时间:2016-03-13 12:43:28

标签: windows batch-file replace administrator

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

修改 这是代码(1行):

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

1 个答案:

答案 0 :(得分:2)

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

但是当您通过鼠标右键单击管理员运行脚本时,当前目录就是其他内容,通常为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