陈晓猫

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: :: 管理 ::

for循环包含多个双引号怎么办?windows
@echo off
setlocal EnableDelayedExpansion
set "sed=%~sdp0sed"
echo %sed%
set "x=F:\boot_muban2019年5月13日-cxdir\imgs\winvblk.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%"引用,也会出错。

 

posted on 2019-05-13 21:16  陈晓猫  阅读(459)  评论(0编辑  收藏  举报