![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-11 08:47 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 有关两个BAT问题的求助,请帮忙解决,谢谢 |
| 可打印版本 800 / 9 |
| 第1楼 raythunder | 发表于 2009-01-29 15:21 |
| 初级用户 发帖 30 积分 47 | |
|
有关两个BAT问题的求助,请帮忙解决,谢谢 转移自 DOS疑难解答 & 问题讨论 (解答室) 明显发错版块。虽属论坛新手,但注册也有一年多了,应该对论坛有所熟悉了,适当的扣分予以提醒。 ——管理员 我对BAT比较感兴趣,所以常弄弄,现在遇到两个问题,想了一些时间也没能解决, 所以现在想请各位精通BAT的朋友帮个忙, 第一个问题是:我想做一个BAT,用它来提取一个路径 这个路径是在注册表中的,大家都知道从注册表里导出来的注册表文件,路径都是用 双斜杠("\\")来标的,而不是用单斜杠("\")来标志的。 现在就拿QQ的安装路径来做个比如说吧。 以下是我做的提取路径的前面部分,后面做不出来 @Echo off reg export HKEY_LOCAL_MACHINE\SOFTWARE\TENCENT\QQ\ 1.txt for /f "tokens=1* delims==" %%i in ('find /I "=" 1.txt') do echo %%j >2.txt 如果你的QQ安装在C:\program files\tencent\qq\下 那么你在1.txt里得到的是下面这段: Windows Registry Editor Version 5.00 "Install"="C:\\Program Files\\Tencent\\QQ\\" 而在2.txt里得到的是: "C:\\Program Files\\Tencent\\QQ\\" 而我现在想要得到 C:\Program Files\Tencent\QQ\ 这样一个形式的显示, 该怎么做呢? 当然,大家也不需要从我做的这个前面两句着手,可以完全用自己的方法。 只要结果能得到 C:\Program Files\Tencent\QQ\ 这个形式就可以了。 我尝试过下面的方法 @Echo off reg export HKEY_LOCAL_MACHINE\SOFTWARE\TENCENT\QQ\ 1.txt for /f "tokens=1* delims==" %%i in ('find /I "=" 1.txt') do echo %%j >2.txt set /a n=2 :loop set /a m=%n%+1 find /i "\\" %n%.txt >NUL if %errorlevel%==0 set /a n=%n%+1&& for /f "tokens=1* delims=\\" %%i in ('type %n%.txt') do echo %%i\%%j >%m%.txt&&goto loop 但结果,只能得到 "C:\Program Files\\Tencent\\QQ\\" 而且是无止尽的循环 希望各位精通BAT的朋友能顺便帮我指出一下,上面这段批中出的问题在哪里。 不胜感激。 第一种方法是 Slore 提供的,在我原来的基础上使用了set的功能,有点类似重命名。 用最小改动达到要求。实在。 感谢 Slore ,具体如下: 第二种方法,是 tireless 提供的,改进了我的做法,一步到位。精简。 感谢 tireless 第二个问题,说起来比较简单,就是我想给一个文件夹里的每个文件都加上序列号,应该怎么做呢? 举例说明一下:假设我在D盘下有一个文件夹MP3,里面有很多歌,我现在想不改变歌曲的名字, 仅在歌曲前面加上01,02,03……这样的序列号,应该怎么做呢? 第二个问题,Slore 朋友让我去搜索,没想到关键字。 结果有朋友发贴询问有关两个文本行对行合并的问题。 地址在这:http://www.cn-dos.net/forum/viewthread.php?tid=45985&fpage=4 有朋友做出来了回答,于是偷师于此,解决了我的问题 具体于下: [ Last edited by raythunder on 2009-2-9 at 15:21 ] |
|
| 第2楼 raythunder | 发表于 2009-01-31 15:34 |
| 初级用户 发帖 30 积分 47 | |
|
发贴至今有三天了.浏览量有四十一,
高手们怎么还没过完年来上网呢? 或许这个时候发贴真不是时候。 看到有个问题讨论的版就进来了,没想到进错了地方. 感谢Manager斧正!!! 继续期待结果. 这些天,在家里,上网不方便,但每隔几天我会来看看结果. 希望路过的朋友,顺便顶一下, 别让帖子沉了. 一直期待结果中…… |
|
| 第3楼 slore | 发表于 2009-01-31 15:42 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
...
set a=C:\\Program Files\\Tencent\\QQ\\ set a=%a:\\=\% echo %a% |
|
| 第4楼 raythunder | 发表于 2009-01-31 15:48 |
| 初级用户 发帖 30 积分 47 | |
|
感谢 Slore 有回帖
结果出来了 想请问一下 set a=%a:\\=\% 这句应该怎么理解? |
|
| 第5楼 slore | 发表于 2009-01-31 15:50 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
替换\\为\
set /? 好好看下吧。 重命名的那个,论坛也有很多帖子了,善用搜索。 |
|
| 第6楼 raythunder | 发表于 2009-01-31 15:53 |
| 初级用户 发帖 30 积分 47 | |
|
多谢 Slore 解惑
第二个问题能一起解决吗? |
|
| 第7楼 slore | 发表于 2009-01-31 19:28 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
论坛,搜索吧。很多例子
|
|
| 第8楼 tireless | 发表于 2009-01-31 23:08 |
| 银牌会员 发帖 1,122 积分 2,025 | |
@Echo off 这样可以变双斜杠为单斜杠。 |
|
| 第9楼 raythunder | 发表于 2009-02-01 15:09 |
| 初级用户 发帖 30 积分 47 | |
|
%~fI - 将 %I 扩充到一个完全合格的路径名
感谢 tireless 又提供新的一种方法. |
|
| 第10楼 raythunder | 发表于 2009-02-09 15:22 |
| 初级用户 发帖 30 积分 47 | |
|
感谢各位朋友的帮助及论坛相关帖子帮助.
TKS |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |