使用 echo 将文本打印到文件的批处理文件出现问题

使用 echo 将文本打印到文件的批处理文件出现问题

我有一个批处理文件,它可以创建另一个批处理文件。我试图让该批处理文件将以下行打印到新的批处理文件中:

echo oLink.TargetPath = "%CD%\file.exe">>script.vbs

这是我正在使用的代码行:

echo     echo oLink.TargetPath = "%CD%\file.exe"^>^>script.vbs>>"newfile.bat" 

当然,这会打印到新文件中的内容:

echo oLink.TargetPath = "(Directory I Run The Batch File From)\file.exe">>script.vbs

我需要将变量打印%CD%到新文件而不是当前目录的变量输出。

答案1

% 字符对于命令行参数和 FOR 参数具有特殊含义。

要将百分比视为常规字符,请将其加倍:

%%

这使 :

echo oLink.TargetPath = '%%CD%%\file.exe' >f

参考: 操作方法:在 Windows 命令行中转义字符、分隔符和引号

答案2

百分号的正确转义字符是其本身。 Echo(%%CD%%

相关内容