2016-03-13 117 views
0

我试图通过使用批处理文件替换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

编辑你的问题并发布你的代码! – Hackoo

+1

请参阅如何提出问题并发布代码,或者期望在此处无任何帮助。没有冒犯 –

回答

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 
+0

哦,似乎还有另一个问题,我无法覆盖原始文件,因为它是一个系统文件。即使是管理员。 –

+2

'/ s'在这里不需要复制单个文件。但是在'/ Y'之外另外使用'/ R'可以覆盖设置了系统属性的目标文件。有关如何使用__XCOPY__复制单个文件的详细信息,请参阅[此答案](http://stackoverflow.com/a/35829012/3074564)。 – Mofi