1. 我的思路:
(1)因为即使已选定几个文件, 但拖到那窗口时, 只显示出其中一个文件的 路径
(2)所以我拖完一个文件后,用逗号隔开(这里对应
for /f "delims=, tokens=%1" %%i in (1.txt) do copy %%i %des%
这一代码中的
delims=, )
这也是楼主所说的
我刚才发现一个问题,凡是文件名中含有“+”或“,”等一些特殊字符的,就不能够执行拷贝的动作。
的一个原因
因为","已经用来作分隔号
至于"+"为什么不能,俺现在太菜,呵呵
(3)如此这般,呵呵,那个窗口就出现了如下情形:
"d:\a.txt","d:\b.txt","d:\c.txt","d:\d.txt"……(这是在我的机上的实验)
即是出现了所有要复制的文件的路径,且这此路径是被逗号分隔开的
(4)接着下来就是将 "d:\a.txt","d:\b.txt","d:\c.txt","d:\d.txt"……
这些路径保存到1.txt这个文本文件中( 对应 echo %path% >1.txt 这一句)
于是1.txt 中的内容为
"d:\a.txt","d:\b.txt","d:\c.txt","d:\d.txt"……
(5)接下来的for 就是将1.txt中的内容变成如下形式
"d:\a.txt"
"d:\b.txt"
"d:\c.txt"
"d:\d.txt"
……
因为 ( copy %%i %des% )这句中的%%i 就是代表"d:\a.txt"等
汗,不会表达~~
代码中的三句for 涉及到的知识主要是:
⑴如何将变量赋给for中的tokens
对应帖子
http://www.cndos.net/forum/viewthread.phptid=29556&fpage=1&highlight=tokens
⑵调用过程并传递参数(不知是不是这样表达) 呵呵
对应 call :ok %%a %%j 这一句