中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求可以替换不同文本文档内容的批处理
作者:
标题: 求可以替换不同文本文档内容的批处理 上一主题 | 下一主题
wushuncheng
新手上路





积分 13
发帖 9
注册 2009-9-8
状态 离线
『楼 主』:  求可以替换不同文本文档内容的批处理

所有文本文档都放在E:\KSC目录下!!要求把文档中的数字替换成对应的文字,一个文档只对应一个数字,文档有上千个,只举三个文本文档为例!!!
380009       5566乐队-It's Our Party
380013       5566乐队-传说
380016       5566乐队-冷风过境
下面这样子弄的参数有哪个地方不对,批量改多了就不行??哪位高手帮忙指出下!!!非常感谢!!!!!!!!!!!!!!!!


@echo off
setlocal enabledelayedexpansion
md "e:\ksc" 2>nul
for /f "delims=" %%a in ('dir /a-d/b e:\ksc') do (
    for /f "delims=" %%i in ('type "e:\ksc\%%a"') do (
    set "var=%%i"
    set "var=!var:380009=5566乐队-It's Our Party!"
    set "var=!var:380013=5566乐队-传说!"
    set "var=!var:380016=5566乐队-冷风过境!"
   
    >>"e:\ksc\%%a" echo.!var!
))
pause

2009-9-14 06:04
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xiaofei120
新手上路





积分 14
发帖 14
注册 2009-9-8
状态 离线
『第 2 楼』:  

先你把写有380009   380013   380016内容的几个文本文档都方在e:\ksc目录
在执行:
@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir /a-d/b e:\ksc') do (
    for /f "delims=" %%i in ('type "e:\ksc\%%a"') do (
    set "var=%%i"
    set "var=!var:380009=5566乐队-It's Our Party!"
    set "var=!var:380013=5566乐队-传说!"
    set "var=!var:380016=5566乐队-冷风过境!"
   
    >"e:\ksc\%%a" echo.!var!
))
pause
这样就可以了。

2009-9-14 06:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wushuncheng
新手上路





积分 13
发帖 9
注册 2009-9-8
状态 离线
『第 3 楼』:  

我的所有文档都是放在E:\ksc下面的,还是一点都不会改变,是不是我的文本文档太多了???有上万个要改的~!!!
还有没有别的方法啊???望高手告知,非常感谢!!急啊!!!!!!!

[ Last edited by wushuncheng on 2009-9-14 at 22:43 ]

2009-9-14 22:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『第 4 楼』:  


@echo off
for %%a in (
"380009 : 5566乐队-It's Our Party "
"380013 : 5566乐队-传说"
"380016 : 5566乐队-冷风过境"
  ) do (
  set now=%%a
  call :next %%now: : =" "%%
)
pause
exit

:next
echo %~2>%1
type %1
[ Last edited by 523066680 on 2009-9-14 at 23:10 ]



综合型编程论坛

我的作品索引
  
2009-9-14 23:08
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (523066680)  编辑帖子  回复  引用回复
wushuncheng
新手上路





积分 13
发帖 9
注册 2009-9-8
状态 离线
『第 5 楼』:  



  Quote:
Originally posted by 523066680 at 2009-9-14 23:08:
[code]
@echo off
for %%a in (
"380009 : 5566乐队-It's Our Party "
"380013 : 5566乐队-传说"
"380016 : 5566乐队-冷风过境"
  ) do (
  set now=%%a
  ca ...

由于文件需要大批量修改才刚开始学的~!!所以很多地方都不懂,按照你的参数把脚本运行了下还是没有反应,不知道哪里不对??难道是我文本文档太多造成的吗???
脚本运行后出现   ECHO 处于关闭状态。

[ Last edited by wushuncheng on 2009-9-14 at 23:59 ]

2009-9-14 23:53
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『第 6 楼』:  

哇这么先进……
我这边成功了,你那边是用的什么系统。
应该不是文件多造成的、

哦 好像我也把题目理解错了……

[ Last edited by 523066680 on 2009-9-15 at 00:04 ]



综合型编程论坛

我的作品索引
  
2009-9-15 00:02
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (523066680)  编辑帖子  回复  引用回复
wushuncheng
新手上路





积分 13
发帖 9
注册 2009-9-8
状态 离线
『第 7 楼』:  



  Quote:
Originally posted by 523066680 at 2009-9-15 00:02:
哇这么先进……
我这边成功了,你那边是用的什么系统。
应该不是文件多造成的、

哦 好像我也把题目理解错了……

[ Last edited by 523066680 on 2009-9-15 at 00:04 ]

XP
我是需要把文本文档里面的内容改掉~~你的脚本运行后,重新生成了很多文本文档,文档里面就只有中文,文档名就变成数字了!!

2009-9-15 00:06
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『第 8 楼』:  

重新理解了一下,你是要找到指定内容的文本,然后把信息换掉对吧
@echo off
for %%a in (
"380009 : 5566乐队-It's Our Party "
"380013 : 5566乐队-传说"
"380016 : 5566乐队-冷风过境"
  ) do (
  set now=%%a
  call :next %%now: : =" "%%
)
pause
exit

:next
for /f "tokens=1 delims=:" %%a in ('findstr /p /c:%1 *') do (
  echo,%~2>%%a
  echo,%%a
)
[ Last edited by 523066680 on 2009-9-15 at 00:18 ]



综合型编程论坛

我的作品索引
  
2009-9-15 00:17
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (523066680)  编辑帖子  回复  引用回复
wushuncheng
新手上路





积分 13
发帖 9
注册 2009-9-8
状态 离线
『第 9 楼』:  

运行后出现的内容:


系统找不到指定的批处理标签 - next
系统找不到指定的批处理标签 - next
系统找不到指定的批处理标签 - next

能加我QQ吗??  QQ6005424     真的很急,谢谢帮忙了!!!!!!!

[ Last edited by wushuncheng on 2009-9-15 at 00:27 ]

2009-9-15 00:26
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『第 10 楼』:  

郁闷 没文件的时候就删自己了,改改
@echo off
for %%a in (
"380009 : 5566乐队-It's Our Party "
"380013 : 5566乐队-传说"
"380016 : 5566乐队-冷风过境"
  ) do (
  set now=%%a
  call :next %%now: : =" "%%
)
pause
exit

:next
for /f "tokens=1 delims=:" %%a in ('findstr /p /c:%1 *') do (
  if "%%a"=="%~nx0" (goto :eof)
  echo,%~2>%%a
  echo,%%a
)




综合型编程论坛

我的作品索引
  
2009-9-15 00:29
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (523066680)  编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『第 11 楼』:  

非常神奇 我这边执行成功……



综合型编程论坛

我的作品索引
  
2009-9-15 00:30
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (523066680)  编辑帖子  回复  引用回复
wushuncheng
新手上路





积分 13
发帖 9
注册 2009-9-8
状态 离线
『第 12 楼』:  



  Quote:
Originally posted by 523066680 at 2009-9-15 00:30:
非常神奇 我这边执行成功……

非常感谢!!!!!!!!!!!!!!!!

2009-9-15 02:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: