我尝试了几种不同的方法将一些文件从配置包复制到系统驱动器。在批处理文件尝试中,它确实按预期创建了日志文件,这意味着我知道它可以访问%SystemDrive%。我究竟做错了什么?或者有其他方法可以复制文件吗?
我尝试过的方法:
PrimaryContext 命令
CommandFile: c:\deploymentfiles\test.bat CommandLine: cmd /c test.bat
设备上下文命令
CommandFile: c:\deploymentfiles\test.bat CommandLine: cmd /c test.bat
测试.bat
@echo off set LOGFILE=%SystemDrive%\logs\provisiontest.log mkdir c:\logs >NUL 2>&1 copy test.txt %SystemDrive% >NUL 2>&1 echo Copy result: %ERRORLEVEL% >> %LOGFILE%
PrimaryContext 命令
CommandFile: c:\deploymentfiles\test.txt CommandLine: copy test.txt %SystemDrive%
你指定了吗
CommandFile: c:\deploymentfiles\test.txt
?您只在问题中显示 .bat 。无论哪种方式,由于 CMD 扩展驱动器号的奇怪方式,
copy test.txt C:
没有尾部斜杠\
实际上会将文件复制到当前工作目录中。copy test.txt "%systemdrive%\"
如果您确实需要将某些内容转储到驱动器的根目录中,请使用它(如果可能,我建议使用%temp%
或其他任何东西代替)。最后要注意的是,如果您使用
>> %LOGFILE% 2>&1
复制命令而不是>NUL 2>&1
,那么您的日志文件实际上会显示错误发布此供参考。下面的代码有效。鲸鱼船长接受的答案让我想到了这一点。
命令文件:
命令行:
顺便说一句,该
dir
命令显示该脚本是从c:\Windows\System32\config\systemprofile\appdata\local\temp\provisioningpkgTmp\{guid}\Commands