将变量视为批处理中的字符串

时间:2017-02-28 14:36:49

标签: batch-file variables

我正在尝试创建一个批处理脚本,它会创建一个名为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

如何让脚本将变量视为字符串,而不是将其视为变量。

1 个答案:

答案 0 :(得分:2)

使用百分号逃脱百分号,例如SET CP=%%~dp0 所有其他(特殊)字符都使用插入符^进行转义。

原因是百分号在批处理解析器的另一个阶段处理,而不是所有其他字符 这也是为什么转义百分号只能在批处理文件中工作,而不是在命令行上,因为cmd-line解析器对百分号有不同的扩展规则。