找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 20217|回复: 9

[文本处理] [已解决] 批处理如何删除小数点

[复制链接]
发表于 2022-1-16 02:57:05 | 显示全部楼层 |阅读模式
本帖最后由 KLL 于 2022-1-16 23:54 编辑

求助 批处理如何删除 最后一列小数点
比如a.txt为
原内容如下  分隔号逗号
1269,圣杯,136.00,137.50,136.00,137.00,2819.17
1271,晨晖生技,60.80,61.40,59.20,61.40,730.4
1293,利统,39.05,39.55,38.10,38.50,64.505

生成后b.txt
1269,圣杯,136.00,137.50,136.00,137.00,281917
1271,晨晖生技,60.80,61.40,59.20,61.40,7304
1293,利统,39.05,39.55,38.10,38.50,64505


Thanks
发表于 2022-1-16 09:23:20 | 显示全部楼层
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in (a.txt) do (
  4.     set str=%%~xi
  5.     echo,%%~ni!str:~1!
  6. )
  7. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
5i365 + 1 牛X

查看全部评分

发表于 2022-1-16 10:26:14 | 显示全部楼层
回复 2# qixiaobin0715


    CMD在某些情况下, 解决问题还是很有优势的, 但是貌似有延迟变量, 把代码合成一行, 执行就出错
发表于 2022-1-16 11:20:42 | 显示全部楼层
回复 3# 5i365
为什么要合成一行呢,那样代码就会难懂。比如上面代码合成一行应当这样:
  1. @echo off&setlocal enabledelayedexpansion&(for /f "delims=" %%i in (a.txt) do set str=%%~xi&echo,%%~ni!str:~1!)&pause
复制代码

评分

参与人数 1技术 +1 收起 理由
KLL + 1 乐于助人

查看全部评分

发表于 2022-1-16 14:03:07 | 显示全部楼层
本帖最后由 5i365 于 2022-1-16 14:06 编辑

回复 4# qixiaobin0715


    因为我要在一个软件里使用, 这个软件只支持单行的命令行
合并多行为单行的情况太复杂了,甚至变量名都要改, 有时干脆就直接用powershell了, 因为那软件支持多行的powershell
但有时, 一个功能用cmd实现起来, 确实干净利索

您合并CMD多行为一行, 有什么诀窍吗? 能分享一下吗
 楼主| 发表于 2022-1-16 23:54:53 | 显示全部楼层
万分感谢!qixiaobin0715兄 协助
发表于 2022-1-17 10:57:37 | 显示全部楼层
回复 5# 5i365
以前看过 CrLf 写的代码,有一些是写成一行的,为了弄懂代码表达的意思,花费了一些精力,没有专门研究过。
在介绍for循环的帖子http://bbs.bathome.net/thread-2189-1-1.html变量延迟一节中,有一句话是说批处理的执行过程的:自上而下,逐条执行。我觉得要充分理解,对于将代码合成一行是有很大的帮助的。
一般来说要将代码合成一行总是要用到变量延迟的,主要是for循环有时会出问题,注意从for开始直到结束需要整个语句用括号括起来,并与前后语句使用&连接。
发表于 2022-1-17 11:00:13 | 显示全部楼层
回复 5# 5i365


    换成PowerShell是明智之举,建议不要在单行CMD上面浪费时间了。
发表于 2022-1-17 11:53:28 | 显示全部楼层
回复 7# qixiaobin0715


    感谢分享!
发表于 2022-1-17 11:53:44 | 显示全部楼层
回复 8# Batcher


    老大所言及是!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 15:21 , Processed in 0.021642 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表