作者oohay (五黑)
看板Programming
标题Re: [问题] Dos AutoBatch
时间Fri Jan 18 14:11:56 2008
※ 引述《TwoDemon (店小二)》之铭言:
: 如果将一个目录下一次移10个档至另一个目录。
: 我原来的写法是全移: move D:\test1\*.txt C:\test2\
: 但现在要改成一次最多只移10个档。
: 但,要怎麽写成一个完整可以运作的script,希望版上高手帮帮忙,谢谢!
回神才想到,其实可用类似关联资料库的集合概念: 想移的=全部-不要的.
你要先知道以下指令的用法:
* move 或 copy 或 xcopy
* dir /O排序与万用字元过滤方法
* for /F "usebackq skip=10"对dir输出结果做剖析
程式写法是:
1. 调整dir写法,使列出档案包含你想要移动的档名,
dir /B只会列出档名,而/O可能可以将你要搬的档案排序在最前面,
或者用万用字元技巧让想搬的排到最前面.
2. 用copy或xcopy(最好别用move,也许搬不盛反而先帮你砍掉档案就糟了)
把第1步筛选出来的档案弄到目的地.
3. 在目的地,用同样的dir方式,举例为dir /B,写下列命令:
for /F "usebackq skip=10" %%s in (`dir /b`) do del %%s
特别注意在in右边括号中写的是命令,因此要用单反引号包起来.
这行命令的意思是,在dir列出的档名中,跳过10笔,剩下的一笔一笔都删除.
--
我很赞同你的说明档.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.112.228.167