本帖最后由 keiamy 于 2012-1-16 09:56 编辑
这是youxi01大大在cn-dos里曾经帮人解答过的的一段代码 (原贴:http://www.cn-dos.net/forum/view ... 0810&sid=ziqZC9)- @echo off
- setlocal enabledelayedexpansion
-
- if "%2"=="" (
- for /f "tokens=2 delims=#" %%i in ('"%~0" %~s1 OK^|sort') do echo %%i
- ) else (
- for /f %%i in (%1) do (
- call :CheckNum %%i Res
- echo !Res!#%%i)
- goto :eof)
-
- pause>nul
-
- :CheckNum num Res
- set/a Res=0
- for /l %%i in (0 1 1000) do (
- set "var=%~1"
- set tmp=!var:~%%i,1!
- if "!tmp!"=="" goto :eof
- set/a Res+=1)
复制代码 测试文本:复制代码 为何将第一个for 中的%~s1与第二个for 的%1互换后会出错(在%1路径带有空格的情况下拖进P内)
因本人还是很菜鸟,想了很久也不明所以,所以才发贴求助,高手们可以给我解释下吗?谢谢的 |