windows中比特率的千位分隔符

Posted

技术标签:

【中文标题】windows中比特率的千位分隔符【英文标题】:thousand separator for bitrates in windows 【发布时间】:2022-01-16 05:52:41 【问题描述】:

如何在 Windows 批处理中为比特率变量添加逗号? (不使用powershell)

例子:

2 000 kb/s => 2,000 kb/s(用逗号替换空格)

876 kb/s => 876 kb/s(无变化)

10.1 MB/s => 10.1 MB/s(无变化)

是否可以用简单的 1 或 2 线来完成?

此外,比特率因每个视频而异。它不是固定的。 谢谢!

【问题讨论】:

【参考方案1】:

这是一个“简单的 1 或 2 班轮”解决方案,适用于每个最多 9 位的数字(不是比特率)。它还提供了对齐(右对齐)转换后的数字的附加功能。如果您不想对齐,只需消除空格(例如通过for 命令)。

@echo off
setlocal EnableDelayedExpansion

rem Initialize data, just once
set "c = " & for /L %%i in (0,1,9) do set "c%%i=,"

rem Generate a series of test numbers between 1 and 9 digits, with two optional decimals
for /L %%i in (1,1,10) do (
   set "num=!random!!random!"
   for %%d in (!random:~-1!) do if %%d gtr 0 set "num=!num:~0,%%d!"
   if !random:~-1! geq 5 set "num=!num!.!random:~-2!"
   call :insertCommas !num!
)
goto :EOF

:insertCommas num

for /F "tokens=1* delims=." %%a in ("%1") do set "int=        %%a" & if "%%b" equ "" (set "frc=   ") else set "frc=.%%b"
echo %int:~-9%%frc%  =  %int:~-9,3%!c%int:~-7,1%!%int:~-6,3%!c%int:~-4,1%!%int:~-3%%frc%
exit /B

输出示例:

     1719     =        1,719
155292712     =  155,292,712
  3269828.90  =    3,269,828.90
     1300     =        1,300
254112572.84  =  254,112,572.84
        1.98  =            1.98
   269462     =      269,462
     1637     =        1,637
       13     =           13
   153851.04  =      153,851.04

EDIT 2021/12/13: 评论要求的新方法

这个问题的目的似乎被误解了......

新代码:

@echo off
setlocal EnableDelayedExpansion

for /F "delims=" %%a in (input.txt) do (
   set "bitrate=%%a"
   set "bitrate=!bitrate: =,!"
   echo !bitrate:~0,-5! !bitrate:~-4!
)

示例输入数据:

2 000 kb/s
876 kb/s
10.1 MB/s

输出:

2,000 kb/s
876 kb/s
10.1 MB/s

【讨论】:

谢谢,但数字是“2 000”而不是“2000”。有空间,所以我不知道该怎么做 我明白了...您对您的要求不够清楚! (您不想“添加逗号”,当然powershell也不能直接这样做)。请参阅我的答案中的编辑;如果这不是您想要的,请edit your question 并插入我可以复制的输入数据的示例文件,以及来自此类输入的所需输出。 那么?...我的新解决方案有效吗?

以上是关于windows中比特率的千位分隔符的主要内容,如果未能解决你的问题,请参考以下文章

如何显示或隐藏数字中的千位分隔符

C++中的千位分隔符

Python中的千位分隔符[重复]

带有剃刀 MVC 和 js 的千位分隔符

在python中使用本地化的千位分隔符和小数精度格式化数字

格式化熊猫数据框中整数的千位分隔符