本帖最后由 cjiabing 于 2012-2-23 00:35 编辑
我弱弱地问,以下代码满足了楼主的要求没有?
首先,用dir来获得文件的路径(我经常用if 、dir、%fa来干这种事),有点罗嗦,对文件夹无效,可惜无法用if exist。
第二、既然%*能保存所有参数,那么把这些含有特殊符号的参数全部输入到dir,而dir是不会对文件进行操作的,所以它也可以保存内容。
第三、for虽然也是逐行逐个处理,遇到特殊符号会发生错误。但对于集合内的命令执行结果它们却视而不见,你可以先ipconfig再for,而不必考虑它输出来的是什么。- @echo off
- ::显示所有拖入文件的路径,完美支持楼主提供的含有特殊符号的文件名。唯一不足的是不支持文件夹,文件夹需要另外想办法。
- echo 以下是文件:
- dir /b %*
- pause
-
- ::计算拖入文件的个数,用来验证。
- dir /b %*|findstr /n /i .*
- pause
-
- @echo off&setlocal enabledelayedexpansion
- ::决定还是用FOR来验证,避免无法继续下一步操作。
- set num=0
- for /f "tokens=*" %%a in ('dir /b %*') do set /a num+=1&echo;!num!:%%a
- pause
复制代码
|