![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-07 12:02 |
共 48,040 主题排行 / 350,125 发帖 / 今日 0 篇 / 48,252 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [已解决]如何在带引号的字符串内添加字符 |
| 可打印版本 1,883 / 15 |
| 第1楼 xb21cn | 发表于 2008-01-30 16:34 |
| 初级用户 发帖 9 积分 20 | |
|
[已解决]如何在带引号的字符串内添加字符 原文件boot.ini如下:
timeout=1 default=multi(0)disk(0)rdisk(0)partition(1)\windows multi(0)disk(0)rdisk(0)partition(1)\windows=”××××××ד ×××××× ×××××× 要将文件改成如下: timeout=1 default=multi(0)disk(0)rdisk(0)partition(1)\windows multi(0)disk(0)rdisk(0)partition(1)\windows=”××××××ד ×××××× multi(0)disk(0)rdisk(0)partition(1)\windows=”×××××××[KF]“ ×××××× UNRVS ×××××× (也就是在“”内字符串前或后加入特定的字符(KF),××××××也为不确定的内容) 望指教! [ Last edited by xb21cn on 2008-2-2 at 03:01 PM ] |
|
| 第2楼 fastslz | 发表于 2008-01-30 17:46 |
| 铂金会员 发帖 2,315 积分 5,493 来自 上海 | |
|
http://www.cn-dos.net/forum/search.php
关键字boot.ini |
|
| 第3楼 xb21cn | 发表于 2008-01-31 17:28 |
| 初级用户 发帖 9 积分 20 | |
|
通过楼上指点,搜索后已经解决上个问题:
@echo off for /f "delims=" %%m in (boot.ini) do ( echo.%%m | find /i "/fastdetect">nul && (echo %%m & echo %%m UNRVS)||echo %%m )>>boot.new 但还有一个问题就是达到如下效果不知如何实现: (原文件格式) ××××××="××××××" ×××××× 需改成: ××××××=“(KF)××××××” ×××××× 或 ××××××=“××××××(KF)” ×××××× (也就是在“”内字符串前或后加入特定的字符(KF)) 望指教! |
|
| 第4楼 fastslz | 发表于 2008-01-31 17:39 |
| 铂金会员 发帖 2,315 积分 5,493 来自 上海 | |
| 第5楼 xb21cn | 发表于 2008-02-01 12:17 |
| 初级用户 发帖 9 积分 20 | |
|
刚才又搜索了一番,还是搞不定啊,不想用第三方工具,只想批处理
|
|
| 第6楼 slore | 发表于 2008-02-01 14:10 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
按=号和空格分割你可以得到"XXXXXXX"这段吧?
输入set /? 可以看到一个取字符串的子字符串的方法……如果在这里 1,-1 可以得到去掉引号的部分…… 你自己 " +文字+上面得到的字符串+文字+"即可完成。 |
|
| 第7楼 xb21cn | 发表于 2008-02-01 14:17 |
| 初级用户 发帖 9 积分 20 | |
|
楼上的不是很了解,因为引号中的内容不确定,如何set不确定的内容呢?
还有=和"之间没有空格噢 [ Last edited by xb21cn on 2008-2-1 at 02:18 PM ] |
|
| 第8楼 slore | 发表于 2008-02-01 14:38 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
@echo off
for /f "tokens=2* delims==/" %%i in (c:\boot.ini) do ( echo %%i ) pause>nul 自己运行看吧~按=和参数的/划分 |
|
| 第9楼 xb21cn | 发表于 2008-02-01 16:31 |
| 初级用户 发帖 9 积分 20 | |
|
谢谢楼上热心回复,试了代码结果如下:
1 multi(0)disk(0)rdisk(0)partition(1)\windows "××××××" "××××××" "××××××" 只是不知怎么会多出前面两行呢,如果没有就ok了 |
|
| 第10楼 fastslz | 发表于 2008-02-01 16:40 |
| 铂金会员 发帖 2,315 积分 5,493 来自 上海 | |
|
确实没有很通用的代码,我临时撮合了一段代码,只处理Microsoft OS
|
|
| 第11楼 xb21cn | 发表于 2008-02-01 16:53 |
| 初级用户 发帖 9 积分 20 | |
|
10楼的代码运行结果:
: timeout=1 default=multi(0)disk(0)rdisk(0)partition(1)\windows multi(0)disk(0)rdisk(0)partition(1)\windows="XXXXXXXX windows 2003 专业版" /fastdetect =noexecute=alwaysoff 在双引号中加字符已经实现,只是还有一点小问题: 第二行多了:符号 第七行中/noexecute变成了=noexecute 不知什么原因 [ Last edited by xb21cn on 2008-2-1 at 04:54 PM ] |
|
| 第12楼 fastslz | 发表于 2008-02-01 17:10 |
| 铂金会员 发帖 2,315 积分 5,493 来自 上海 | |
|
我说了没通用办法,OS参数有变化更不通用,我这里的结果
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="XXXXXXXX Microsoft Windows XP Professional" /noexecute=optin /fastdetect |
|
| 第13楼 fastslz | 发表于 2008-02-01 17:17 |
| 铂金会员 发帖 2,315 积分 5,493 来自 上海 | |
|
for /f "tokens=1,2,3* delims==/" %%a in ('type boot.x^|find /i "/fastdetect"') do echo %%b
再替换该字符吧 |
|
| 第14楼 xb21cn | 发表于 2008-02-01 17:42 |
| 初级用户 发帖 9 积分 20 | |
|
试了下楼上修改的代码,可以准确提取双引号内字符串,但双引号本身也被提出来了。
[ Last edited by xb21cn on 2008-2-2 at 02:56 PM ] |
|
| 第15楼 slore | 发表于 2008-02-01 17:53 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
你自己修改吧~基本上的思路我6楼说过了……
个人觉得那个思路挺通用的呀! 8楼只是个演示。。。。 这个也是演示~不过已经很具体了。 |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |