标题: [文本处理] 求助批处理根据文本A的内容,替换文件夹中指定文本的指定内容 [打印本页]
作者: 小白来了 时间: 2024-4-14 16:55 标题: 求助批处理根据文本A的内容,替换文件夹中指定文本的指定内容
当前目录内"名称.txt"文本里面有多行内容!多行内容格式都是"某某某-[]"
其中一行内容为:张三-[真的爱你]
需要成功获取到张三-这一行:括号里面的内容!也就是"真的爱你"这4个字!
然后替换"E:\备份"
目录内"张三"文件夹中的"文本1.txt "[]"括号里面的内容!
"文本1.txt"内容示例:[海阔天空] 等等内容....
只替换[]里面的内容!其他内容不变。
当前目录中的"名称.txt"里面还有"李四" "老王"等内容!一行一个!都是"某某某-[]"
"E:\备份"文件夹内有对应的"李四" "老王"文件夹,每个文件夹里面的txt名称都是"文本1.txt"
大神帮忙写个bat代码吧,谢谢~
作者: 小白来了 时间: 2024-4-14 19:49
感觉好难啊,自己一直搞不定。。。大佬们在吗?等大佬们出手。。。
作者: terse 时间: 2024-4-14 19:58
本帖最后由 terse 于 2024-4-14 20:00 编辑
名称.txt和文本1.txt的内容有无特殊字符,另外,张三-[真的爱你] 这个是在行首出现吗,有没有空格之类
作者: 小白来了 时间: 2024-4-14 20:00
回复 3# terse
没有特殊字符,"文本1.txt "里面有空格,例如:《真的爱你》空格空格空格空格、其他文字内容
作者: terse 时间: 2024-4-14 20:12
- @echo off
- for /f "tokens=1,2 delims=[-]" %%i in (名称.txt) do (
- if exist "e:\备份\%%i\文本1.txt" (
- for /f "usebackq tokens=1,2*delims=[]" %%a in ("e:\备份\%%i\文本1.txt") do (
- echo %%a[%%j]%%c
- )
- )
- )
- pause
复制代码
作者: 小白来了 时间: 2024-4-14 22:03
回复 5# terse
大佬好,执行后没有替换~
"名称.txt"里面的内容为:
张三-[真的爱你]
李四-[光辉岁月]
王五-[不再犹豫]
"E:\备份"目录内
"张三"文件夹中的"文本1.txt内容为:
[任意内容] 等等其他内容~
"E:\备份"目录内
"李四"文件夹中的"文本1.txt内容为:
[任意内容] 等等其他内容~
需要实现的是:
"张三"文件夹中的"文本1.txt内容为:
[真的爱你] 等等其他内容~
"李四"文件夹中的"文本1.txt内容为:
[光辉岁月] 等等其他内容~
作者: terse 时间: 2024-4-14 22:29
回复 6# 小白来了
你看一下,显示的内容是否正确,然后再决定
作者: 小白来了 时间: 2024-4-14 22:44
回复 7# terse
输出的内容为:
张三任意内容[真的爱你]
李四任意内容[光辉岁月]
应该把 张三任意内容 替换为 真的爱你
李四任意内容 替换为 光辉岁月
作者: terse 时间: 2024-4-14 23:05
- @echo off
- for /f "tokens=1,2 delims=[-]" %%i in (名称.txt) do (
- if exist "e:\备份\%%i\文本1.txt" (
- (for /f "usebackq tokens=1,2*delims=[]" %%a in ("e:\备份\%%i\文本1.txt") do (
- if "%%b"=="" (echo %%a) else if %%c =="" ( echo;%%j %%b ) else echo;%%a[%%j]%%c
- ))>$
- move $ "e:\备份\%%i\文本1.txt"
- )
- )
- pause
复制代码
回复 8# 小白来了
作者: 小白来了 时间: 2024-4-15 00:06
回复 9# terse
谢谢大佬!万分感谢~真的非常厉害!
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |