for循环包含多个双引号怎么办?windows

for循环包含多个双引号怎么办?windows
@echo off
setlocal EnableDelayedExpansion
set "sed=%~sdp0sed"
echo %sed%
set "x=F:oot_muban2019年5月13日-cxdirimgswinvblk.img"
set dv=c
set "menu=c:menu.lst"
for /f %%i in ('%sed% -n -e "/title/=" %menu% ^|%sed% -n "2p"') do set /a y=%%i
echo %y%
pause


for /f %%i in ('%sed% -n -e "/title/=" %menu% ^|%sed% -n "2p"') do set /a y=%%i
for循环中,in ('')里面的语句如果有多个双引号,往往会出错,特别是第一个符号,不能使双引号,否则会出错。
如果第一个命令放在有空格的目录,可以用%~sdp0短路径来调用。
set "sed=%~sdp0sed" 正确
set "sed=%~dp0sed" 这个放在in ('')里面,如果后面还有双引号的参数,即使用"%sed%"引用,也会出错。

 

原文地址:https://www.cnblogs.com/liuzhaoyzz/p/10859082.html