![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-11 05:57 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 如何提取出最后一行中的特定字符? |
| 可打印版本 1,841 / 6 |
| 第1楼 youtube2046 | 发表于 2009-01-24 21:46 |
| 新手上路 发帖 9 积分 15 来自 Beijing | |
|
如何提取出最后一行中的特定字符? 我想通过GDISK生成的磁盘报告,来确定一块硬盘的最后一个盘符, 以及在GHOST中备份到最后一个分区时,应使用的盘符数字.
本例中,希望提取出最后一行的 F: 赋给变量driveletter, 提取出 5 赋给变量drivenum. 磁盘报告如下: Disk Partitions Cylinders Heads Sectors Mbytes Model 2 5 30401 255 63 238475.2 ST3250820AS Partition Status Type Volume Label Mbytes System Usage C: 1 A PRIMARY System 25603.6 NTFS/HPFS 11% 2 EXTENDED 212869.1 89% D: 3 LOGICAL Temp 59263.2 NTFS/HPFS 25% E: 4 LOGICAL Work 51199.3 NTFS/HPFS 21% F: 5 LOGICAL Study 102406.5 NTFS/HPFS 43% 当然不同的硬盘生成的磁盘报告不同,比如有的可能是4个盘符有的可能是7个盘符等. 望高手指教. [ Last edited by youtube2046 on 2009-1-24 at 22:02 ] |
|
| 第2楼 slore | 发表于 2009-01-24 22:50 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
@echo off
for /f "tokens=1,2 delims=: " %%i in (1.txt) do ( set dl=%%i set dn=%%j ) echo 盘符为:%dl% 数字表示为:%dn% pause |
|
| 第3楼 newxso | 发表于 2009-01-24 22:56 |
| 初级用户 发帖 101 积分 73 来自 GZ | |
|
你应该说明是在XP下还是在纯DOS下,在XP下处理这样的内容很容易,在纯DOS下没有第三方工具就麻烦点。以下是我以前应用在启动盘中的批处理(纯DOS下):
[ Last edited by newxso on 2009-1-24 at 23:04 ] |
|
| 第4楼 newxso | 发表于 2009-01-24 23:02 |
| 初级用户 发帖 101 积分 73 来自 GZ | |
|
其实用 ghost.exe 也可以完成分区数检测,获取最后分区(ghost8.3):
[ Last edited by newxso on 2009-1-24 at 23:09 ] |
|
| 第5楼 youtube2046 | 发表于 2009-01-25 12:01 |
| 新手上路 发帖 9 积分 15 来自 Beijing | |
Originally posted by newxso at 2009-1-24 10:56 PM: 我以为有GDisk 生成的磁盘报告文件,放到虚拟盘里,就可以越过读取硬盘内容的必要,这样可以避开NTFS带来的麻烦。 我希望在XP和纯DOS下分别实现。如果说在XP下很容易,也希望贴出XP下的实现方法。 |
|
| 第6楼 youtube2046 | 发表于 2009-01-25 12:26 |
| 新手上路 发帖 9 积分 15 来自 Beijing | |
Originally posted by slore at 2009-1-24 10:50 PM: 在XP实现这个代码很好。但是在纯DOS下可以也这么简便就实现吗? |
|
| 第7楼 slore | 发表于 2009-01-25 12:57 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
不能……
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |