[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 求助批处理根据文本A的内容,替换文件夹中指定文本的指定内容

当前目录内"名称.txt"文本里面有多行内容!多行内容格式都是"某某某-[]"

其中一行内容为:张三-[真的爱你]

需要成功获取到张三-这一行:括号里面的内容!也就是"真的爱你"这4个字!


然后替换"E:\备份"

目录内"张三"文件夹中的"文本1.txt "[]"括号里面的内容!

"文本1.txt"内容示例:[海阔天空] 等等内容....

只替换[]里面的内容!其他内容不变。

当前目录中的"名称.txt"里面还有"李四" "老王"等内容!一行一个!都是"某某某-[]"

"E:\备份"文件夹内有对应的"李四" "老王"文件夹,每个文件夹里面的txt名称都是"文本1.txt"


大神帮忙写个bat代码吧,谢谢~

感觉好难啊,自己一直搞不定。。。大佬们在吗?等大佬们出手。。。

TOP

本帖最后由 terse 于 2024-4-14 20:00 编辑

名称.txt和文本1.txt的内容有无特殊字符,另外,张三-[真的爱你] 这个是在行首出现吗,有没有空格之类

TOP

回复 3# terse


    没有特殊字符,"文本1.txt "里面有空格,例如:《真的爱你》空格空格空格空格、其他文字内容

TOP

  1. @echo off
  2. for /f "tokens=1,2 delims=[-]" %%i in (名称.txt) do (
  3.      if exist "e:\备份\%%i\文本1.txt" (
  4.        for /f "usebackq tokens=1,2*delims=[]" %%a in ("e:\备份\%%i\文本1.txt") do (
  5.             echo %%a[%%j]%%c
  6.        )
  7.     )
  8. )
  9. pause
复制代码

TOP

回复 5# terse


大佬好,执行后没有替换~
"名称.txt"里面的内容为:
张三-[真的爱你]
李四-[光辉岁月]
王五-[不再犹豫]


"E:\备份"目录内
"张三"文件夹中的"文本1.txt内容为:
[任意内容]          等等其他内容~
"E:\备份"目录内
"李四"文件夹中的"文本1.txt内容为:
[任意内容]          等等其他内容~

需要实现的是:
"张三"文件夹中的"文本1.txt内容为:
[真的爱你]          等等其他内容~
"李四"文件夹中的"文本1.txt内容为:
[光辉岁月]          等等其他内容~

TOP

回复 6# 小白来了
你看一下,显示的内容是否正确,然后再决定

TOP

回复 7# terse


    输出的内容为:
张三任意内容[真的爱你]
李四任意内容[光辉岁月]

应该把 张三任意内容 替换为 真的爱你
李四任意内容  替换为 光辉岁月

TOP

  1. @echo off
  2. for /f "tokens=1,2 delims=[-]" %%i in (名称.txt) do (
  3.      if exist "e:\备份\%%i\文本1.txt" (
  4.        (for /f "usebackq tokens=1,2*delims=[]" %%a in ("e:\备份\%%i\文本1.txt") do (
  5.             if "%%b"=="" (echo %%a) else if %%c =="" ( echo;%%j %%b ) else echo;%%a[%%j]%%c
  6.        ))>$
  7.        move $ "e:\备份\%%i\文本1.txt"
  8.     )
  9. )
  10. pause
复制代码
回复 8# 小白来了

TOP

回复 9# terse


    谢谢大佬!万分感谢~真的非常厉害!

TOP

返回列表