[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. :getTGMK
  2. setlocal
  3. for /f "usebackq" %%c in (`powershell -c "$i=%~1;('TB',1tb),('GB',1gb),('MB',1mb),('KB',1kb),('B',1)|foreach{if($i -ge $_[1]){''+[math]::Truncate($i/$_[1])+$_[0];break}}"`) do (
  4. endlocal & set %~2=%%c&goto :EOF
  5. )
复制代码

TOP

回复 3# hnfeng


   
要速度就不要分开来 比如一次性处理所有数据
或者
不要用powershell ,按启动1秒来算 ,换成其他的话 ,每次调用应该能快半秒
或者
不要用call ,能够快一点点的时间
  1. @echo off&setlocal EnableDelayedExpansion&cd /d "%~dp0"&title %~nx0
  2. echo 磁盘    剩余  总大小
  3. for /f "tokens=1,2,3 delims= " %%a in ('wmic logicaldisk get Caption^,Size^,FreeSpace ^|findstr [0-9] ') do (
  4. set "str=!str!  %%a %%b %%c?"  
  5. )
  6. echo,!str!|powershell -c "$j=$input -split '\?';$j|foreach{[regex]::replace($_,'\d+',{$i=[decimal]$args[0].value;('TB',1tb),('GB',1gb),('MB',1mb),('KB',1kb),('B',1)|foreach{if($i -ge $_[1]){'{0,7}' -f (''+[math]::Truncate($i/$_[1])+$_[0]);$i=0;}}})}"
  7. pause
  8. endlocal&exit/b
复制代码

TOP

返回列表