Batch file 将%userprofile%传递到另一批中
我有一个批处理文件,它写入另一个批处理文件,以便以后从另一个系统恢复文件。Batch file 将%userprofile%传递到另一批中,batch-file,Batch File,我有一个批处理文件,它写入另一个批处理文件,以便以后从另一个系统恢复文件。%userprofile%由当前运行的批处理进行解释。因此,当我检查它创建的批时,它会填充以前运行它的用户 例如: echo XCOPY "%%~dp0User files\Desktop\*.*" "%userprofile%\Desktop\Old Desktop shortcuts" /C /S /Y /I >> "!D!:\Backup-%computername%-%date:~-10,2%-%dat
%userprofile%
由当前运行的批处理进行解释。因此,当我检查它创建的批时,它会填充以前运行它的用户
例如:
echo XCOPY "%%~dp0User files\Desktop\*.*" "%userprofile%\Desktop\Old Desktop shortcuts" /C /S /Y /I >> "!D!:\Backup-%computername%-%date:~-10,2%-%date:~7,2%-%date:~-4,4%\Restore_User_Files.bat"
它会创建一个Restore_User_files.bat,当我在另一个系统上打开它时,它会显示:
XCOPY "%%~dp0User files\Desktop\*.*" "C:\Documents and Settings\randomness\Desktop\Old Desktop shortcuts"
我想将该%userprofile%
原封不动地传递到批处理中,而不是传递给编写它的系统的用户名,以便其他系统可以将其解释为%userprofile%
有什么建议吗?我确定我只是缺少了一些字符……如果我说的不太清楚,请告诉我=)您需要使用^characters来转义命令中的%符号。在这种情况下,
^%USERPROFILE^%
应该执行您想要的操作。将百分号加倍
%%userprofile%%
这在批处理文件中不起作用-百分比需要加倍,如foxidrive的回答所示。您的解决方案可以从命令行运行,但它并没有真正逃脱百分比。插入符号可以放在百分比之间的任何位置,通常可以从命令行使用。@Mark谢谢Mark。你可以考虑删除你的答案,所以当你认为它没有什么价值的时候,把线索放在对未来读者更清楚、更清楚的地方。我想我可能已经尝试过了,但我会尝试一下。谢谢你的迅速回复。