标题: [文本处理] 求助批处理截取字符串小数点前后的1位或多位字符 [打印本页]
作者: cc5511 时间: 2020-8-28 21:32 标题: 求助批处理截取字符串小数点前后的1位或多位字符
比如这3串数字:
1、123.45678
2、1234.5678
3、12345.678
我想要截取的内容:
第1个数为:123.4 (取小数点后1位)
第2个数为:1234.56 (取小数点后2位)
第3个数为:12345 (只取整数)
因为我遇到需要处理的数字不是固定的,所以想知道以上3个例子的截取/分割字符的方法。
关于第3个,网上搜了下,找到分割字符的方式,不过好像只能保留特定字符后面的,不能留前面的,尴尬了~~~- @echo off
- set a=12345.678
- echo 原始a:%a%
- echo 删除变量a中的第一次出现的.及其前面的所有字符
- echo %a:*.=%
- pause
复制代码
作者: qixiaobin0715 时间: 2020-8-29 09:40
回复 1# cc5511
用for循环可以,不过复杂点:- @echo off
- setlocal enabledelayedexpansion
- set x=12345.678
- for /f "tokens=1,2 delims=." %%a in ("%x%") do (
- set str1=%%a
- set str2=%%b
- echo !str1!.!str2:~0,1!
- echo !str1!.!str2:~0,2!
- echo !str1!
- )
- pause
复制代码
作者: yhcfsr 时间: 2020-8-29 10:14
- @echo off
- rem 取小数点后n位
- set n=3
- for /f "tokens=1,* delims=." %%a in ("123.456789") do (
- set aft=%%b
- setlocal enableDelayedExpansion
- echo;%%a.!aft:~,%n%!
- endlocal
-
- )
- pause
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |