在不启用usebackq的时候,需要加上"delims="
说明:不使用任何关键字的时候,所有的for /f都是以空格做为默认分隔符的,包括对 in ('command') 中的 ""英文引号括起来的部分
set a=reg query "HKCU\software\microsoft\windows\currentversion\explorer\shell folders" /v "desktop"
for /f "skip=4 delims=" %%i in ('%a%') do for /f "tokens=2,*" %%j in ("%%i") do echo %%k
或者
set a=reg query "HKCU\software\microsoft\windows\currentversion\explorer\shell folders"
for /f "delims=" %%i in ('%a% ^| FIND /I "desktop"') do for /f "tokens=2,*" %%j in ("%%i") do echo %%k
如果觉得for /f次数过多,可以启用usebackq,例如:
for /f "usebackq skip=4 tokens=2,*" %%i in (`reg query "HKCU\software\microsoft\windows\currentversion\explorer\shell folders" /v "desktop"`) do echo %%j
或者
for /f "usebackq tokens=2,*" %%i in (`reg query "HKCU\software\microsoft\windows\currentversion\explorer\shell folders" ^| FIND /I "desktop"`) do echo %%j
说明:usebackq就是用来处理 for /f 中字符串中的空格的
Last edited by Hanyeguxing on 2009-9-15 at 06:45 ]