我花了很长时间才正确地转义它,我在 Windows 7 上,并创建了一个使用当前目录的批处理文件。当前目录中通常会有空格,因此必须用双引号将其转义。
我有一个文件夹,其中运行批处理文件,并且该文件夹包含子目录,因此我想引用这些子文件夹中的其他文件:
echo "%~dp0"
set rootDir=%~dp0%Support\Command.exe
set _serial_cmd="%rootDir%
echo %_serial_cmd%
FOR /f "tokens=4 delims=(COM)]" %%G IN ('%_serial_cmd% ^|findstr /R /C:"Standard COM Port"') DO SET AVRSERIALPORT=COM%%G
echo %_serial_cmd%
打印出来很好,但是 FOR 语句中的变量引用 %_serial_cmd% 不喜欢引号,或者在目录路径中的第一个空格后停止读取。