Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 在批处理中将变量视为字符串_Batch File_Variables - Fatal编程技术网

Batch file 在批处理中将变量视为字符串

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

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

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

用百分号转义百分号,如
SET CP=%%~dp0

所有其他(特殊)字符都用插入符号转义

原因是百分比符号是在批处理分析器的另一个阶段处理的,而不是所有其他字符。

这也是为什么转义百分号只能在批处理文件中工作,而不能在命令行中工作的原因,因为cmd行解析器对百分号有不同的扩展规则。

用百分号转义百分号,如
SET CP=%%~dp0
谢谢你这么做。简单明了:)也是一个很好的答案:)