本帖最后由 CrLf 于 2012-11-3 04:27 编辑
for 和 echo 是 cmd 的内部命令,不能像外部程序一样独立执行。
直接运行 cmd 是不支持 %* 的,需通过 cmdcmdline 获取参数。
楼主可在快捷方式的目标项里写:- %comspec% /q/v/k set "cmd=!cmdcmdline:*:*=!"&(for %a in (!cmd:~43!)do echo %a)&rem
复制代码 这样就能列出拖入的文件信息,不过因为没有专门处理特殊字符,所以用 for 循环时可能被 , ; = 等截断
若要进行防截断处理,代码就有点冗长了:- %comspec% /q/v/k set "cmd=!cmdcmdline:*:*=!"&set ^"cmd=!cmd:"=!"&(for %a in (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 "cmd=!cmd: %a:=" "%a:!")&(for %a in (!cmd:~150!^")do echo %a)&rem
复制代码
|