中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-11 09:58
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 【已解决】关于文件中指定内容替换的问题 查看 760 回复 9
楼 主 【已解决】关于文件中指定内容替换的问题 发表于 2009-02-26 01:43 ·  中国 吉林 四平 联通
新手上路
积分 11
发帖 8
注册 2009-02-21 12:09
17年会员
UID 139448
性别 男
状态 离线
源文件内容:
Q(0)="不装备法宝,将不能使用?"
A(0)="战斗技能"
Q(1)="在什么NPC那里可以用黯淡的内丹兑换想要的骑宠唤灵符?"
A(1)="石塘县封妖师"
Q(2)="以下哪个描述是正确的?"
A(2)="红名攻击白名会增加罪犯值"
Q(3)="提升官府声望可以获得哪些职业的法宝?"
A(3)="力士,游侠"
Q(4)="打开礼仪动作界面是哪个快捷键? "
A(4)="P键"
……
……
替换成:
@@不装备法宝,将不能使用?
战斗技能
@@在什么NPC那里可以用黯淡的内丹兑换想要的骑宠唤灵符?
石塘县封妖师
@@以下哪个描述是正确的?
红名攻击白名会增加罪犯值
@@提升官府声望可以获得哪些职业的法宝?
力士
游侠
@@打开礼仪动作界面是哪个快捷键?
P键


问题好像很复杂,况且我对批处理不太了解,多谢大家帮忙
补充:文件名是1.txt
测试了两位的不好用啊
还有这里面的问题里面有数字的,但是这些数字不能删除的。

[ Last edited by zuoyuanchun on 2009-2-27 at 04:30 ]
2 没还测试过,不知行不? 发表于 2009-02-26 02:34 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916
发帖 752
注册 2008-12-28 04:30
17年会员
UID 135147
性别 男
来自 广西
状态 离线
@echo off&setlocal enabledelayedexpansion
for /f "tokens=1,* delims==" %%a in (源文件) do set str=%%a&call :sub!str:~0,1! %%~b
goto :eof
:subQ
echo @@%*
goto :eof

:subA
echo.%1
shift
if "%1"=="" goto :eof
goto :subA

[ Last edited by netbenton on 2009-2-26 at 12:12 ]
精简
=> 个人网志
3 发表于 2009-02-26 05:25 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
sed "s/^Q(*)=\x22/@@/;s/^A(*)=\x22//;s/\x22$//" your_text_file
4 发表于 2009-02-26 08:49 ·  中国 吉林 四平 联通
新手上路
积分 11
发帖 8
注册 2009-02-21 12:09
17年会员
UID 139448
性别 男
状态 离线
http://upload.cn-dos.net/img/1331.txt
我已经上传上来了,大家直接帮忙编写个批处理处理一下吧,谢谢
5 发表于 2009-02-26 14:11 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916
发帖 752
注册 2008-12-28 04:30
17年会员
UID 135147
性别 男
来自 广西
状态 离线
@echo on&setlocal enabledelayedexpansion
(
for /f "tokens=1,* delims==" %%a in (ch.txt) do set str=%%a&call :sub!str:~0,1! %%~b
)>ch2.txt
pause
goto :eof

:subQ
echo @@%*
goto :eof

:subA
echo.%1
shift
if "%~1"=="" goto :eof
goto :subA
精简
=> 个人网志
6 发表于 2009-02-26 22:51 ·  中国 广西 百色 中移铁通
银牌会员
★★★
永远的菜鸟
积分 1,335
发帖 574
注册 2007-11-27 12:50
18年会员
UID 103929
性别 男
来自 广西
状态 离线
@echo off
setlocal enabledelayedexpansion
set "srcfl=1.txt"
for /f "tokens=1,* delims==" %%a in (%srcfl%) do (
set "str=%%a"
if /i "!str:~,1!"=="q" (
echo.@@%%~b
) else (
echo.%%~b
)
)>>11.txt
start 11.txt
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
zuoyuanchun +1 2009-02-27 04:25
7 发表于 2009-02-27 01:22 ·  中国 江西 赣州 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
@echo off
(
for /f "tokens=1,* delims==" %%a in (1.txt) do (
if "%%a" gtr "Q" (echo @@%%~b) else echo %%~b
)
)>1_new.txt
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
zuoyuanchun +1 2009-02-27 04:26
8 发表于 2009-02-27 04:30 ·  中国 吉林 四平 联通
新手上路
积分 11
发帖 8
注册 2009-02-21 12:09
17年会员
UID 139448
性别 男
状态 离线
Originally posted by moniuming at 2009-2-26 22:51:
@echo off
setlocal enabledelayedexpansion
set "srcfl=1.txt"
for /f "tokens=1,* delims==" %%a in (%srcfl%) do (
set "str=%%a"
if /i "!str:~,1!" ...


这个不错,至少能看懂是什么意思,学习了
9 发表于 2009-02-27 04:32 ·  中国 江苏 常州 溧阳市 电信
银牌会员
★★★
积分 2,404
发帖 946
注册 2005-09-08 13:44
20年会员
UID 42345
状态 离线

@echo off
(for /f "tokens=1,2* delims=()=" %%i in (1.txt) do (
if /i "%%i"=="Q" (echo @@%%~k) ELSE echo %%~k
))>1_new.txt
pause
简单!简单!再简单!
10 发表于 2009-02-27 09:06 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916
发帖 752
注册 2008-12-28 04:30
17年会员
UID 135147
性别 男
来自 广西
状态 离线
...
@@在什么NPC那里可以用黯淡的内丹兑换想要的骑宠唤灵符?
石塘县封妖师
@@以下哪个描述是正确的?
红名攻击白名会增加罪犯值
@@提升官府声望可以获得哪些职业的法宝?
力士
游侠

@@打开礼仪动作界面是哪个快捷键?
P键
...



请问楼主红色部分是不是要换行呀?
精简
=> 个人网志
论坛跳转: