将%userprofile%传递给另一个批处理

时间:2013-11-26 20:00:16

标签: batch-file

我有一个批处理文件写入另一个批处理文件,以便稍后从另一个系统恢复文件。 %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%

有什么建议吗?我确定我只是错过了一些字符......如果我没有意义,请告诉我=)

2 个答案:

答案 0 :(得分:3)

百分号的两倍。

%%userprofile%%

答案 1 :(得分:0)

您需要使用^字符转义命令中的%符号。在这种情况下,^%USERPROFILE^%应该做你想做的事。