sfcsm 发表于 2023-2-3 15:17

【已解决】关于cmd命令和批处理命令求助

本帖最后由 sfcsm 于 2023-2-8 10:46 编辑

cmd命令   “fsutil file createnew E:\文件名.TXT 1000”    这个命令是在指定目录创建一个指定大小的文件

百度了好多网页没有查询到我想要的 ,求助如下:

我想要在指定硬盘或者U盘下重复生成10MB的文件,当磁盘空间不足10MB时,就生成5MB的,再不足就生成2MB的,以此类推,逐渐生成小文件,直至磁盘空间被全部填满

或者      指定硬盘或者U盘下重复生成10MB的文件,当磁盘空间不足10MB时,生成剩余空间大小的文件。


有大佬懂的怎么弄吗?

btc001 发表于 2023-2-3 16:34

先用bat fsutil volume diskfree 查询剩余空间
然后循环 剩余空间 /10MB
   fsutil file createnew
循环结束

sfcsm 发表于 2023-2-3 16:57

btc001 发表于 2023-2-3 16:34
先用bat fsutil volume diskfree 查询剩余空间
然后循环 剩余空间 /10MB
   fsutil file createnew


逻辑上知道怎么排,不知道批处理代码怎么敲,

想法是:
循环
大小=获取指定盘剩余空间大小
如果(大小>10MB)
创建10MB文件
否则
创建剩余大小文件
循环结束

sfcsm 发表于 2023-2-3 16:58

btc001 发表于 2023-2-3 16:34
先用bat fsutil volume diskfree 查询剩余空间
然后循环 剩余空间 /10MB
   fsutil file createnew


创建剩余大小文件后跳出循环

SVIP008 发表于 2023-2-3 17:11

搞不了,不能换别一种思路吗?
直接用 填充的软件直接填充硬盘或填充01不好吗?

sfcsm 发表于 2023-2-3 17:17

SVIP008 发表于 2023-2-3 17:11
搞不了,不能换别一种思路吗?
直接用 填充的软件直接填充硬盘或填充01不好吗?

emmm,软件倒是找到有,生成的文件大小偏大:lol

btc001 发表于 2023-2-3 18:55

@echo off
setlocal enabledelayedexpansion
:start
for /f "tokens=3" %%a in ('fsutil volume diskfree c:\') do (
    for /f "delims=" %%b in ("%%a") do set "free=%%b"
    if "!free:~10,1!"=="" (
      echo 硬盘空间不足10G 开始创建小于10Gde文件
      :: 创建最后跳出循环退出
      goto :eof

    ) else (
      if "!free:~12,1!"=="" ( cd . ) else (
            if "!free!" lss "10737418240" echo 硬盘空间还有10G 开始创建10G的文件
      )
      echo 空间很多 开始正常创建
      
      
    )
    goto :end
)
:end
goto start
pause

注释写完了 自己添加一下创建文件的命令吧

sfcsm 发表于 2023-2-3 20:52

btc001 发表于 2023-2-3 18:55
@echo off
setlocal enabledelayedexpansion
:start


大佬,这是哪种语言?我去学个皮毛:lol

btc001 发表于 2023-2-3 21:48

sfcsm 发表于 2023-2-3 20:52
大佬,这是哪种语言?我去学个皮毛

bat就是dos啊

sfcsm 发表于 2023-2-4 10:07

btc001 发表于 2023-2-3 21:48
bat就是dos啊

哦,谢谢
页: [1]
查看完整版本: 【已解决】关于cmd命令和批处理命令求助