找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 25445|回复: 5

[数值计算] 批处理实现分区对齐查询,4K对齐查询

[复制链接]
发表于 2013-9-14 17:15:16 | 显示全部楼层 |阅读模式
本帖最后由 foxJL 于 2013-11-2 16:52 编辑

更新一下,添加对U盘和移动硬盘的查询

  1. @echo off&setlocal EnableDelayedExpansion
  2. color 3f & title 分区对齐查询  by foxjl   bathome.net做最实用的批处理论坛
  3. ::做这个分区对齐查询,主要是为了方便大家查看电脑分区有没有4K对齐,4K对齐虽说不是什么新技术,但还是有大部分电脑没有对齐的,特别在固态硬盘日益普及的今天,4K对齐就非常有必要了。
  4. ::另外机械硬盘也要4K对齐,有人测试过,复制文件时,对齐4K后性能有着明显的提高,特别是在零散小文件方面,有着接近一倍的提升,这也间接证明了对齐4K后,可以有效缓解系统卡顿情况发生。
  5. ::在编写过程中绕了不少弯路,感谢batman、fastslz、Broly的帮助.
  6. ::2013.9.20添加对U盘和移动硬盘的查询.
  7. >%temp%\tmp.vbs echo Wscript.Echo round(wscript.arguments(0)/wscript.arguments(1),2)
  8. for /f "skip=1" %%i in ('wmic path Win32_LogicalDiskToPartition get StartingAddress') do (set /a n+=1 & set StartingAddress_!n!=%%i)
  9. for %%i in (3,2) do (
  10.   for /f "tokens=1,2,3 delims= " %%a in ('wmic logicaldisk where "drivetype=%%i" get deviceid^,size^,freespace 2^>nul^|find ":"') do (
  11.     if %%i equ 3 (echo.Disk %%a) else (echo.Usb Disk %%a)
  12.     set /a n_2+=1
  13.     call :calculate %%b 1073741824 availableGB
  14.     call :calculate %%c 1073741824 allGB
  15.     for %%z in (!n_2!) do (set StartingAddress=!StartingAddress_%%z!)
  16.     call :calculate !StartingAddress! 4096 4K
  17.     if "!4k!"=="!4k:.=!" (set 4k=是) else (set 4k=否)
  18.     call :calculate !StartingAddress! 1048576 1M
  19.     if "!1m!"=="!1M:.=!" (set 1m=是) else (set 1m=否)
  20.     call :calculate !StartingAddress! 2097152 2M
  21.     if "!2m!"=="!2M:.=!" (set 2m=是) else (set 2m=否)
  22.     call :calculate !StartingAddress! 3145728 3M
  23.     if "!3m!"=="!3M:.=!" (set 3m=是) else (set 3m=否)
  24.     call :calculate !StartingAddress! 4194304 4M
  25.     if "!4m!"=="!4M:.=!" (set 4m=是) else (set 4m=否)
  26.     set availableGB=       !availableGB!
  27.     set allGB=       !allGB!
  28.     echo.总空间:!allGB:~-7!GB  可用:!availableGB:~-7!GB  4K(!4K!^)  1M(!1M!^)  2M(!2M!^)  3M(!3M!^)  4M(!4M!^)
  29.     echo.
  30.   )
  31. )
  32. del %temp%\tmp.vbs&echo.━━完成,按任意键退出.&pause>nul&exit

  33. :calculate
  34. for /f "delims=" %%i in ('cscript //nologo %temp%\tmp.vbs %1 %2') do (set %3=%%i)
  35. goto :eof
复制代码

评分

参与人数 1技术 +1 收起 理由
batman + 1 感谢分享

查看全部评分

发表于 2013-9-14 20:49:33 | 显示全部楼层
否 就是没有对齐的意思吗
 楼主| 发表于 2013-9-14 21:00:55 | 显示全部楼层
回复 2# cjw00529017


    是的
发表于 2013-9-14 22:32:00 | 显示全部楼层
好久没来了~版主就是狠~~
发表于 2020-8-29 03:23:39 | 显示全部楼层
回复 1# foxJL


    学习了 你这个检测4K对齐的关键命令是哪个啊 怎么判断的
发表于 2020-9-8 07:43:09 | 显示全部楼层
支持楼主,谢谢分享。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 02:49 , Processed in 0.021575 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表