Batch file 在批处理中将变量视为字符串
我正在尝试创建一个批处理脚本,它创建了一个名为MigrateOldStickyNotes.bat的新批处理脚本,其中包含两个简单的命令Batch file 在批处理中将变量视为字符串,batch-file,variables,Batch File,Variables,我正在尝试创建一个批处理脚本,它创建了一个名为MigrateOldStickyNotes.bat的新批处理脚本,其中包含两个简单的命令 @echo SET CP=%~dp0> "%cp%\%ME%\%ME%\MigrateOldStickyNotes.bat" @echo SET ME=%Username%>> "%cp%\%ME%\%ME%\MigrateOldStickyNotes.bat" 但不是用这些代码创建一个新的批处理文件,而是创建一个与此完全相同的代码行 SET
@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
如何使脚本将变量视为字符串而不是变量。用百分号转义百分号,如
SET CP=%%~dp0
所有其他(特殊)字符都用插入符号转义 原因是百分比符号是在批处理分析器的另一个阶段处理的,而不是所有其他字符。
这也是为什么转义百分号只能在批处理文件中工作,而不能在命令行中工作的原因,因为cmd行解析器对百分号有不同的扩展规则。用百分号转义百分号,如
SET CP=%%~dp0
谢谢你这么做。简单明了:)也是一个很好的答案:)