我正在编写一个批处理文件来设置我为几个用户的机器编写的小程序。由于批处理文件也将写入用户的注册表,因此它将以管理员模式运行。我遇到的问题是当它进入COPY时以管理员模式运行(我还使用MOVE命令进行了测试),它输出系统找不到该文件。但是,如果我在没有管理员权限的情况下运行程序,则文件会按预期复制/移动。我已经在没有注册表命令的情况下测试了该文件,并且这似乎对这种情况没有影响。初始文件都位于用户桌面上的文件夹中,但我已经对路径名进行了硬编码,以确保没有混淆。我和这些计算机的所有用户都拥有管理员权限。 批处理文件的内容如下所示:
REM This program needs to be run as administrator for it to add to the registry
REM Adds a registry value that allows the user to right click a document and run the program
@echo off
MD %UserProfile%\AppData\Roaming\Microsoft\AddIns\ComparisonAddin
COPY C:\Users\MyUser\Desktop\Launch Files\Compare.xlsm %UserProfile%\AppData\Roaming\Microsoft\AddIns\ComparisonAddin
COPY C:\Users\MyUser\Desktop\Launch Files\launchCompare.bat %UserProfile%\AppData\Roaming\Microsoft\AddIns\ComparisonAddin
REG ADD "HKCR\*\shell\Get Word Difference\command" /v "" /t REG_EXPAND_SZ /d "\"%USERPROFILE%\AppData\Roaming\Microsoft\AddIns\ComparisonAddin\launchCompare.bat\" \"%%1\""
pause
在管理员模式和非管理员模式下,目录都是正常创建的。 COPY / MOVE命令在管理模式下无效吗?
感谢。
答案 0 :(得分:0)
COPY "C:\Users\MyUser\Desktop\Launch Files\Compare.xlsm" "%UserProfile%\AppData\Roaming\Microsoft\AddIns\ComparisonAddin\"
任何包含空格,逗号,制表符等分隔符字符的源或目标都必须“引用”。
我在目录名末尾使用尾部反斜杠作为习惯,因此如果目录不存在,copy
将不会尝试使用该名称创建目标file