本帖最后由 CrLf 于 2012-1-24 19:08 编辑
试写两种思路…- @echo off&setlocal enabledelayedexpansion
- set str=!cmdcmdline:*^" =!
- set str= !str:^"=!
- for %%a in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do set "str=!str: %%a:=" "%%a:!"
- for /f "delims=" %%a in (^"!str:~2!"") do endlocal&echo %%a
- pause
复制代码
- @echo off&setlocal enabledelayedexpansion
- set str=!cmdcmdline:*" =!
- for %%a in (^^ ^& ^, ^; ^( ^) ) do set "str=!str:%%a=^%%a!"
- if !str:~-1!==^" set "str=!str:~,-1!"
- (endlocal
- for /f "delims=" %%a in ("%str:""="%") do echo %%a)
- pause
复制代码 修改两个不严谨的地方。
方案一对付拖动文件到图标时应该是比较通用的,但是难以应付传递参数的情况。因等号无法直接替换,故在方案二中未对其进行转义处理,其实思路和旧帖中qzw的方案类似,如他当时所言,逐字转义确实是比较稳妥可靠的办法,所得的结果也比较通用。 |