返回列表 发帖
比阿凡达还牛!!!顶一下,支持

TOP

新手来学了,谢谢了

TOP

本帖最后由 cjiabing 于 2011-6-23 21:23 编辑
@echo off
::零字节
cd.>1.txt
cd.>2.txt
cd.>3.txt
pause
::使用一个cd命令创建多个文件,命令格式:cd,n>Name1.txt,n-1>Name2.txt,n-2>Name3.txt,n-3……
::注意:cd后面以及各个文件名之间跟的是点号“,”,重定向符“>”前跟的是数字,这个数字第一个是要创建的文件总数,依次递减,直至1
cd,4>111.txt,3>222.txt,2>333.txt,1>444.txt
cd,3>121.txt,2>122.txt,1>123.txt
pause
::显然不是零字节,并且,似乎与句柄那类东西有关,速度受到一定程度的影响,而且成功率有可能无法保证,比如下例:
cd,5>4321.txt,4>4321.txt,3>4322.txt,2>4323.txt,1>4324.txt>nul 2>nul
cd,6>a.txt,5>b.txt,4>c.txt,3>d.txt,2>e.txt,1>f.txt
::不能重复利用,无法覆盖原来的数据。
pause
del 4321.txt,4321.txt,4322.txt,4323.txt,4324.txt,121.txt,122.txt,123.txt,111.txt,222.txt,333.txt,444.txt,3.txt,2.txt,1.txt,e.txt,a.txt,b.txt,c.txt,d.txt,f.txtCOPY
楼主的绝招真多啊!~学学点。不过那个同时创建多个文件的似乎无效:
1、只创建得一两个,2、速度慢,出错。
我研究了一下,提出以下方案,大家看看怎么样!~
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

18# cjiabing

成功率不高的情况是这样吗?:
cd.>1.txt 3>2.txt
cd.>2.txtCOPY
那是因为句柄会占用文件,解决方法是避开句柄备份(比如只用句柄 1、2、5、7、9 或者 1、4、6、8),或者将指向文件的句柄关闭,更好的办法是先“打预防针”,见下面三例:
cd.>1.txt 2>2.txt 5>3.txt 7>4.txt 9>5.txt
cd.>1.txt 2>2.txt 5>3.txt 7>4.txt 9>5.txt
::避开句柄备份避免出错COPY
cd.>1.txt 2>2.txt 3>3.txt 4>4.txt 5>5.txt 6>6.txt 7>7.txt 8>8.txt 9>9.txt
cd.>nul 2>nul 3>nul 4>nul 5>nul 6>nul 7>nul 8>nul 9>nul
cd.>1.txt 2>2.txt 3>3.txt 4>4.txt 5>5.txt 6>6.txt 7>7.txt 8>8.txt 9>9.txt
::将指向文件的句柄关闭COPY


我认为最好的解决办法应该是:
cd.>nul 2>nul 3>nul 4>nul 5>nul 6>nul 7>nul 8>nul 9>nul
cd.>1.txt 2>2.txt 3>3.txt 4>4.txt 5>5.txt 6>6.txt 7>7.txt 8>8.txt
cd.>1.txt 2>2.txt 3>3.txt 4>4.txt 5>5.txt 6>6.txt 7>7.txt 8>8.txt
::通过句柄备份,使除9以外所有句柄均不为空,也就无法再进行可操作的句柄备份了,不过因为句柄9的特殊性,日后生成文件时只能用1~8,不宜用句柄9,否则仍然存在发生句柄备份的可能COPY

TOP

19# zm900612
不懂得能否重复利用,我那个放到一个循环里,结果它就不起作用了,搞得我都没信心了。
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

楼主辛苦了,顶.

TOP

20# cjiabing
可以的:
@echo off>nul 2>nul 3>nul 4>nul 5>nul 6>nul 7>nul 8>nul 9>nul
::先使句柄不为“真空”,也就避免了后面发生句柄备份的可能,不过除非特殊情况,不建议把句柄12也用上
for /l %%a in (1 1 8) do (
   for /l %%b in (1 1 8) do echo>%%b.txt %%a%%b
   rem 生成8个txt文本,接下来用句柄清空
   pause
   cd.>1.txt 2>2.txt 3>3.txt 4>4.txt 5>5.txt 6>6.txt 7>7.txt 8>8.txt
   rem 因为此时句柄1~8已经不为空,所以均可重复用,唯独句柄9最好别用
)
pauseCOPY

TOP

很好  对于我这个新手来说是个很好的东西 感谢楼主的笔记

TOP

楼主的笔记对我这个新手很有用  先收藏   在学到那里的时候   慢慢研究

TOP

忍不住要赞一个

TOP

感谢楼主,点赞~

TOP

返回列表