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

[文本处理] [已解决]求助批处理把txt文本每一行的最后一个“.”替换为“-歌名:”

[复制链接]
发表于 2023-5-6 16:36:51 | 显示全部楼层 |阅读模式
本帖最后由 盛世繁华 于 2023-5-12 02:05 编辑

txt文本每一行中的“.”数量不定,   现在需要把每一行的最后一个“.”替换成“-歌名:”,   当其中的行没有“.”这个符号时只输出不替换
试着用emeditor进行替换没找到合适的正则表达式....求个bat方法

例如:
1.热门.万能青年旅店.《冀西南林路行》
2.谭维维.《3811》
3 Dua Lipa 《Future Nostalgia》

想替换成

1.热门.万能青年旅店-歌名:《冀西南林路行》
2.谭维维-歌名:《3811》
3 Dua Lipa 《Future Nostalgia》

谢谢

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2023-5-6 16:46:58 | 显示全部楼层
如果是一次性修改的,建议使用 EditPlus 的宏功能。
例如:
Ctrl + F 搜索一次 .《
复制字符串 -歌名:《
Ctrl + Q、回车、F3、Ctrl + V、Ctrl + Q
Alt + 1 ...

评分

参与人数 1技术 +1 收起 理由
盛世繁华 + 1 乐于助人

查看全部评分

发表于 2023-5-6 16:56:39 | 显示全部楼层
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f "delims=" %%i in ('type "1.txt"') do (
  4.         if "%%~xi" equ "" (
  5.                 echo %%i
  6.         ) else (
  7.                 set "str=%%~xi"
  8.                 echo %%~ni-歌名:!str:~1!
  9.         )
  10. ))>2.txt
  11. endlocal
  12. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
盛世繁华 + 1 乐于助人

查看全部评分

 楼主| 发表于 2023-5-6 17:33:01 | 显示全部楼层
回复 3# 77七
请问为什么代码里没有“.”也能成功,如果是文本里的是逗号需要替换又应怎么处理谢谢
比如
1.热门,万能青年旅店,《冀西南林路行》
2.谭维维,《3811》
3 Dua Lipa 《Future Nostalgia》
 楼主| 发表于 2023-5-6 17:34:05 | 显示全部楼层
回复 2# chishingchan 我思考下
发表于 2023-5-6 17:51:59 | 显示全部楼层
本帖最后由 idwma 于 2023-5-6 17:53 编辑

emeditor正则应该是通用的试试这个
  1. (.+)\.
  2. \1-歌名:
复制代码

评分

参与人数 1技术 +1 收起 理由
盛世繁华 + 1 乐于助人

查看全部评分

 楼主| 发表于 2023-5-6 17:56:52 | 显示全部楼层
本帖最后由 盛世繁华 于 2023-5-6 18:10 编辑

回复 6# idwma 666

不知道为什么点号换成逗号不行,逗号前加转义也搜不到  (\,+)\\,
发表于 2023-5-6 18:32:16 | 显示全部楼层
回复 7# 盛世繁华

逗号不用转义
  1. (.+),
复制代码

评分

参与人数 1技术 +1 收起 理由
盛世繁华 + 1 乐于助人

查看全部评分

 楼主| 发表于 2023-5-12 01:59:53 | 显示全部楼层
感谢回复 8# idwma
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 22:06 , Processed in 0.012594 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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