标题: [其他] 【已解决】检测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
举个例子:- @echo off
- setlocal enabledelayedexpansion
- set "str=3.82 MB"
- for /f "tokens=1,2" %%i in ("%str%") do (
- set "s=%%i00000"
- echo;!s:~0,5! %%j
- )
- 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 |