标题: [文本处理] (已解决)求助批处理文本内容随机英文字母删除 [打印本页]
作者: linlianboy 时间: 2022-6-5 23:50 标题: (已解决)求助批处理文本内容随机英文字母删除
本帖最后由 linlianboy 于 2022-6-15 22:33 编辑
已解决,保留
作者: linlianboy 时间: 2022-6-6 12:26
大家帮忙看下怎么弄,这个问题困扰我好几天了,真没办法才**坛求助
作者: qixiaobin0715 时间: 2022-6-6 13:32
前面发的有错误,重新发一遍 :
回复 2# linlianboy - @echo off
- cd /d "D:\auto"
- setlocal enabledelayedexpansion
- (for /f "tokens=1-4* delims=-" %%a in (test.ini) do (
- set str=%%d
- set /a str=str
- if !str! neq %%d set /a str-=1
- echo,%%a----%%b----%%c----!str!----%%e
- ))>new_test.ini
复制代码
作者: linlianboy 时间: 2022-6-6 21:47
本帖最后由 linlianboy 于 2022-6-15 22:33 编辑
已解决谢谢大家啊·····
作者: linlianboy 时间: 2022-6-6 21:49
本帖最后由 linlianboy 于 2022-6-15 22:33 编辑
test1111111
作者: linlianboy 时间: 2022-6-7 04:21
回复 3# xczxczxcz
麻烦再帮忙看下
作者: qixiaobin0715 时间: 2022-6-7 10:16
回复 5# linlianboy
多加一层for循环和一个判断语句即可:- @echo off
- cd /d "D:\auto"
- setlocal enabledelayedexpansion
- (for /f "delims=" %%i in (test.ini) do (
- for /f "tokens=1-4* delims=-" %%a in ("%%i") do (
- if "%%d"=="" (
- echo,%%i
- ) else (
- set str=%%d
- set /a str=str
- if !str! neq %%d set /a str-=1
- echo,%%a----%%b----%%c----!str!----%%e
- )
- )
- ))>new_test.ini
复制代码
作者: linlianboy 时间: 2022-6-8 11:20
回复 8# qixiaobin0715
非常感谢您,测试了一下正常使用了
作者: qixiaobin0715 时间: 2022-6-9 10:02
xczxczxcz发帖指出代码有bug,确实如此。
上面代码只是根据楼主提供的文本片段来写的,是有局限性的。其必要条件为:
1.需要修改的含有日期信息的行中,以-分隔的列,日期信息必须在第4列;
2.其余行分隔后列数要小于4列。
不知是否是指上面2点,还是另有其它?
作者: qixiaobin0715 时间: 2022-6-9 11:29
我想xczxczxcz可能是指代码第10行,数据类型的转换会有bug,如果楼主的文本符合上面的2点必要条件,一般就不会出现问题,这里只是借用了一下。
作者: xczxczxcz 时间: 2022-6-9 17:17
回复 10# qixiaobin0715
你这么执着,唉!问题是 str-=1; 1楼的例子,-1显示没问题 到了6月30日没问题,下月1号 20220701,-1则成了20220700,7月0号? 若1楼把它作为纯数字处理当然没问题。估计1楼做事也是不仔细认真的那种( ),万一到了下月发现数字中有20220699,可以感觉怪怪的,但作为写程的人来说,一看到这样的数字,首先想到的就是要不要作日期处理。
作者: xczxczxcz 时间: 2022-6-9 17:24
俺在远景看WIN11的各种BUG,路过此处,发现你这么执着,唉。
作者: qixiaobin0715 时间: 2022-6-10 09:26
回复 11# xczxczxcz
我觉得有时候执着并没有什么不好啊。谢谢,确实是很明显的bug,粗心了。这就是专业和业余的差别,粗心只是一个方面,可能这次忘了这个方面,下次又忽略了另一个地方。
作者: linlianboy 时间: 2022-7-1 18:10
回复 11# xczxczxcz
大佬,真的如您所说,今天有20220701b,直接被替换成了20220700了,正常应该是20220630的,请问下这种要怎么处理呀
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |