Board logo

标题: [文件操作] [已解决]批处理怎样生成体积渐增的1-1000.rar或zip文件? [打印本页]

作者: w1983912    时间: 2011-2-16 20:07     标题: [已解决]批处理怎样生成体积渐增的1-1000.rar或zip文件?

又来请教了
批处理生成1000个rar文件
要求1.文件名:
1.rar
2.rar
3.rar
...一直到...
1000.rar

要求2.并且生成的文件大小为():

1.rar        1.01M
2.rar         1.02M
3.rar         1.03M
4.rar          1.04M
..文件名+1..     文件大小+0.01M
10.rar       1.1M
........一直这样下去
100.rar      2.0M
............
999.rar     9.99M
1000.rar    10.00M(最后这个可以不要, 只要1-999个生成也可以)

希望知道的朋友能帮帮我  先谢谢了[]

[ 本帖最后由 w1983912 于 2011-2-24 20:52 编辑 ]
作者: asnahu    时间: 2011-2-16 20:19

有如此怪异需求,估计是做坏事儿。
作者: wc726842270    时间: 2011-2-16 22:44

用FSUTIL,不过为什么要创建RAR的呢.即使作出来也是损坏的(刚才试了一下,就是这样)
作者: CrLf    时间: 2011-2-17 00:05

楼主的意思是想要分卷压缩吗?请描述得全面一些,如果只是创建无用文件,那方法太多了,不过没搞懂这样到底有什么用。
另外,1.01M、1.02M这样的计量方式是八进制(B)四舍五入成十进制的,楼主到底要达到什么效果,非要精确到M的小数点后两位么?
作者: w1983912    时间: 2011-2-19 15:10

只要是rar文件或zip文件 错误的垃圾文件都可以 只要是1.rar-----1000.rar 这样的就可以
没什么限制 最好能0.01M 递增拉 不能也可以  只需要10M以下的1000个不一样大小的rar或zip文件

请帮忙 谢谢
作者: CrLf    时间: 2011-2-19 20:18

如果分区格式是ntfs可以用:
  1. for /l %%a in (1 1 1000) do fsutil file createnew %%a.rar 1048
复制代码
如果不是ntfs就用copy /b
  1. @echo off&setlocal enabledelayedexpansion
  2. help>1.rar
  3. for /f %%a in (1 1 999) do set /a "n+=1"&copy /b 1.rar+%%a.rar !n!.rar
复制代码
不过完全看不出来这样做有什么意义...
作者: w1983912    时间: 2011-2-22 21:34

for /l %%a in (1 1 1000) do fsutil file createnew %%a.rar 1048000

能生成1000个1M的rar  但是不是递增 请问能否实现呢     朋友 或随机也可以

我现在就手动  一个一个生成 使用这个命令也能 想要多大就要多大  只能一个一个。。。

无论如何    谢谢
作者: w1983912    时间: 2011-2-22 22:00

for /l %%a in (99 1 99) do fsutil file createnew %%a.rar 92160
for /l %%a in (100 1 100) do fsutil file createnew %%a.rar 921600


不懂如何才能每行累加102字节

呵呵 我已经搞定了  这样不是很好么    虽然 一行一个的命令...........
作者: wc726842270    时间: 2011-2-22 22:24     标题: 回复 8楼 的帖子

SET /A N+=102
SET /A A+=1
以后的自已想想吧

[ 本帖最后由 wc726842270 于 2011-2-22 22:27 编辑 ]
作者: w1983912    时间: 2011-2-22 23:16     标题: 批处理中的批处理 继续求助啊

以下是生成1-999个rar文件    文件大小是:1.01M-9.99M
101-999  是999个文件
1-100个文件是从1M开始的 所以1.rar  就是1M+0.01M=1024000+10240=101*10240=1034240
一直到最后999.rar  大小为999*10240=9.99M

请帮我变成:
for /l %%a in (1 1 1) do fsutil file createnew %%a.rar 1034240
for /l %%a in (2 1 2) do fsutil file createnew %%a.rar 1044480
for /l %%a in (3 1 3) do fsutil file createnew %%a.rar 1054720
for /l %%a in (4 1 4) do fsutil file createnew %%a.rar 1064960
.............
for /l %%a in (997 1 997) do fsutil file createnew %%a.rar 10209280
for /l %%a in (998 1 998) do fsutil file createnew %%a.rar 10219520
for /l %%a in (999 1 999) do fsutil file createnew %%a.rar 10229760

先谢谢了 希望帮到底
作者: wc726842270    时间: 2011-2-22 23:20

希望LZ改下标题
  1. @echo off&setlocal enabledelayedexpansion
  2. for /l %%i in (10 20 100) do (set /a n+=1
  3.   fsutil file createnew !n!.txt %%i)
  4. pause
复制代码
本想给你思路,结果还是这样
作者: wc726842270    时间: 2011-2-22 23:25

http://www.bathome.net/thread-963-1-1.html
作者: w1983912    时间: 2011-2-22 23:33     标题: 回复 2楼 的帖子

没有解决啊  朋友  请认真对待.........   我运行你的代码只得到5个txt文件   1K的
作者: wc726842270    时间: 2011-2-23 04:32     标题: 回复 13楼 的帖子

不好意思。本以为给你思路你能解决呢
  1. @echo off&setlocal enabledelayedexpansion
  2. for /l %%i in (1034240
  3. 10240 10229760) do (set /a n+=1
  4.   fsutil file createnew !n!.rar %%i)
  5. pause
复制代码
PS 1。根椐你的要求:"文件大小是:1.01M-9.99M,步长为0.01M仅能建立899个RAR文件
   2。从你的“我运行你的代码只得到5个txt文件   1K的”看来你不明白“簇”一类的知识.右键-属性-大小(你要的数据)
另外在桌面上新建一个文件夹。把P文件放在其目录下,再进行操做(方便删除)
作者: wc726842270    时间: 2011-2-23 04:41

电脑中的“簇”
  文件系统是操作系统与驱动器之间的接口,当操作系统请求从硬盘里读取一个文件时,会请求相应的文件系统(FAT 16/FAT32/NTFS)打开文件。扇区是磁盘最小的物理存储单元,但由于操作系统无法对数目众多的扇区进行寻址,所以操作系统就将相邻的扇区组合在一起,形成一个簇,然后再对簇进行管理。每个簇可以包括2、4、8、16、32或64个扇区。显然,簇是操作系统所使用的逻辑概念,而非磁盘的物理特性。   为了更好地管理磁盘空间和更高效地从硬盘读取数据,操作系统规定一个簇中只能放置一个文件的内容,因此文件所占用的空间,只能是簇的整数倍;如果文件实际大小小于一簇,它也要占一簇的空间。如果文件实际大小大于一簇,根据逻辑推算,那么该文件就要占两个簇的空间。所以,一般情况下文件所占空间要略大于文件的实际大小,只有在少数情况下,即文件的实际大小恰好是簇的整数倍时,文件的实际大小才会与所占空间完全一致。   一个簇只能容纳一个文件占用,即使这个文件只有0字节,也决不允许两个文件或两个以上的文件共用一个簇,不然会造成数据混乱。
作者: w1983912    时间: 2011-2-24 20:51     标题: 回复 14楼 的帖子

我是菜鸟中的菜鸟   谢谢  终于解决了  哈哈哈哈哈哈哈哈




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2