Board logo

标题: [其他] 【已解决】检测bat显示的数字位数,并修改。谢谢 [打印本页]

作者: yyz219    时间: 2025-1-22 11:16     标题: 【已解决】检测bat显示的数字位数,并修改。谢谢

本帖最后由 yyz219 于 2025-1-22 16:46 编辑

::【显示 6个 字符(包括“.”),不够补 0】
完美解决了:
::============================================================================================
::【获取(UserData文件夹): UserData文件夹(字节)】
for /f "tokens=3* delims= " %%a in ('dir/s/a-d/-c "D:\1绿色软件\网络\浏览器\便携版百分3.2.4.23\User Data\"^|C:\Windows\System32\findstr /c:"个文件"') do set UserData文件夹=%%~a

::【运算 UserData文件夹(大小变 MB):】
for /f "delims=" %%a in ('D:\1绿色软件\关闭显示器\Pecmd.exe "team calc c=(%UserData文件夹%)/1024/1024##3F^|writ -,$,%%c%%"') do ( set "UserData文件夹(MB)=%%a")
::============================================================================================
::【修改UserData文件夹为————5个数字(不够补0)】---->【即:显示 6个 字符(包括“.”),不够补 0】
setlocal enabledelayedexpansion
set "str=%UserData文件夹(MB)%"
for /f "tokens=1,2" %%i in ("%str%") do (
set "s=%%i00000"
set "UserData文件夹(5个数字)=!s:~0,6!%%j")
::============================================================================================
bat-2颜色.exe #Bn                          ◇ UserData:%UserData文件夹(5个数字)%(3.82 MB)
::============================================================================================

原来的问题:
如果:
echo  3.82 MB 就数字末补 0
变成:
echo  3.820 MB
==================
如果:
echo  12.56 MB 就保持不变
==================
3.82 MB 和  12.56 MB 都是变化的
(需求就是:保持显示位数都是4个数字,不够就补0)

谢谢
作者: WHY    时间: 2025-1-22 11:54

举个例子:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "str=3.82 MB"
  4. for /f "tokens=1,2" %%i in ("%str%") do (
  5.     set "s=%%i00000"
  6.     echo;!s:~0,5! %%j
  7. )
  8. pause
复制代码

作者: yyz219    时间: 2025-1-22 12:10

回复 2# WHY


    我慢慢琢磨,谢谢
作者: aloha20200628    时间: 2025-1-22 12:31

本帖最后由 aloha20200628 于 2025-1-22 12:34 编辑

回复 1# yyz219

遭遇 12345.67 MB 或 123.45 MB 该如何保留4位数字?

作者: yyz219    时间: 2025-1-22 13:03

回复 4# aloha20200628


    我的文件没有这么大的




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