![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-03 10:52 |
共 48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 如何获取路径最后一个"\"后的字串[完美解决] |
| 可打印版本 2,612 / 25 |
| 第16楼 HUNRYBECKY | 发表于 2007-02-13 22:35 |
| 银牌会员 发帖 442 积分 1,179 | |
Originally posted by HUNRYBECKY at 2007-2-13 04:20: 谢谢处罚,因为当时比较急,又要放假了,想在放假前做处理,放假后可能很少上网,不是很方便,所以发多个帖子以加快回答的速度.我以后会记住的. |
|
| 第17楼 HUNRYBECKY | 发表于 2007-02-13 22:57 |
| 银牌会员 发帖 442 积分 1,179 | |
|
再问下高手门一个问题:我想在下面的批处理IME.BAT中根据用户的选择IME.SVE来决定删除和备份那些输入法,但是遇到一个问题:
ime\IMJP8_1 system32\imjp81.ime system32\imjp81k.dll system32\kbdjpn.dll system32\msir3jp.dll system32\msir3jp.lex ime\IMJP8_1是文件夹,表示日文输入,后面几个是日文输入的几个关联文件,我备份时要同时把该目录和其他几个关联文件一起压缩到一文件夹命名如IMJP8_1中,如何做到?因为这里有三个难点:一是在路径层次不确定的情况下如何以文件夹的最后一个\名称来命名,问题已经由12楼的ZH159兄解决,二是如果区分判断IME.SVE中所列是文件夹还是文件,我使用FINDSTR+扩展名判断,还是有点问题;三是如何根据第二个难点的判断把文件压缩添加到相应的压缩包中? 可能我的描述不是很清楚,表达能力不好,见谅,见下面的代码 批处理IME.BAT的内容 IME.SVE的内容: [ Last edited by HUNRYBECKY on 2007-2-13 at 11:03 PM ] |
|
| 第18楼 HUNRYBECKY | 发表于 2007-02-13 23:03 |
| 银牌会员 发帖 442 积分 1,179 | |
|
另外问个小问题:
一.如何在发帖子时给文本加颜色之类的以便突出显示,我这里怎么没有这些显示? 二.建议斑竹修改帖子的字数限制为100字符,字数太少,难以表达清楚. |
|
| 第19楼 zh159 | 发表于 2007-02-13 23:10 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
判断是否文件夹(缺点:不能区分包含“.”名称的文件夹):
list.txt |
|
| 第20楼 HUNRYBECKY | 发表于 2007-02-13 23:32 |
| 银牌会员 发帖 442 积分 1,179 | |
Originally posted by zh159 at 2007-2-13 23:10: |
|
| 第21楼 zh159 | 发表于 2007-02-13 23:46 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
要扩展名简单啊:
@echo off for /f "delims=" %%i in (list.txt) do if not "%%~xi" == "" echo %%~nxi pause |
|
| 第22楼 HUNRYBECKY | 发表于 2007-02-14 00:32 |
| 银牌会员 发帖 442 积分 1,179 | |
Originally posted by zh159 at 2007-2-13 23:46: 非常谢谢兄的回答,刚才我一直测试,扩展名的问题已经解决,但是就是我刚才说的第二个问题很难解决,如何保持得到的文件名称以便是文件的时候直接追加到刚才的文件夹中?因为如果不是文件夹的时候变量会覆盖掉原来的变量. 为了便于测试,我上传了整个文件.请运行里面的TEST.BAT测试,谢谢 [ Last edited by HUNRYBECKY on 2007-2-14 at 12:52 AM ] 附件 test.rar (256.19 KiB) |
|
| 第23楼 HUNRYBECKY | 发表于 2007-02-14 02:10 |
| 银牌会员 发帖 442 积分 1,179 | |
|
自己顶一下,今天下午开始放假啦,希望放假前有人给我一个思路,谢谢.
祝大家新年快乐,百事可乐. |
|
| 第24楼 HUNRYBECKY | 发表于 2007-02-14 03:08 |
| 银牌会员 发帖 442 积分 1,179 | |
|
经过不断的构思和调试,终于搞定了,其实很简单,因为变量每次要被替换掉,即使使用SET语句也一样,那么能不能像VB ,VBS设置全局变量一样呢,经过测试把变量写入一个文本中,然后再读入就达到了模仿VB,VBS的全局变量的效果,经过测试,下面代码完全达到了我所要的效果,工夫不费有心人,同时还是非常感谢ZH159,VIKILL等我对的问题回答.
测试:请下载22楼代码,并更换TEST.BAT中的内容为以下内容 |
|
| 第25楼 csx163 | 发表于 2007-02-14 05:35 |
| 初级用户 发帖 45 积分 97 | |
|
%~nI - 仅将 %I 扩充到一个文件名
%~xI - 仅将 %I 扩充到一个文件扩展名 %~nxI 可以这样用?? |
|
| 第26楼 zh159 | 发表于 2007-02-14 06:33 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
for/?
可以组合修饰符来得到多重结果: [ Last edited by zh159 on 2007-2-13 at 05:34 PM ] |
|
| 上一页 1 2 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |