我正在尝试创建一个批处理脚本,它会创建一个名为MigrateOldStickyNotes.bat的新批处理脚本,其中包含几个简单的命令。
@echo SET CP=%~dp0> "%cp%\%ME%\%ME%\MigrateOldStickyNotes.bat"
@echo SET ME=%Username%>> "%cp%\%ME%\%ME%\MigrateOldStickyNotes.bat"
但是不要创建一个新的批处理文件,这些文件看起来就像这样。
SET CP=%~dp0
SET ME=%Username%
它将创建一个新文件并将该变量用作输入。这将导致我的这些行。
SET CP=\\sosy-nas\Backup\
SET ME=itcebrha
如何让脚本将变量视为字符串,而不是将其视为变量。
答案 0 :(得分:2)
使用百分号逃脱百分号,例如SET CP=%%~dp0
所有其他(特殊)字符都使用插入符^
进行转义。
原因是百分号在批处理解析器的另一个阶段处理,而不是所有其他字符 这也是为什么转义百分号只能在批处理文件中工作,而不是在命令行上,因为cmd-line解析器对百分号有不同的扩展规则。