楼 主
求助 根据下一行提取上一行的字符串
发表于 2010-06-20 23:56 · 中国 四川 绵阳 电信
初级用户
★
积分 70 发帖 29 注册 2006-01-03 06:17 20年会员 UID 48342 性别 男
状态 离线
mountvol的输出格式如下:
------------------------------begin--------------------------------
当前装入点的 VolumeName 可能值为:
\\?\Volume{61260a4f-694f-11df-9198-806e6f6e6963}\
C:\
\\?\Volume{61260a52-694f-11df-9198-806e6f6e6963}\
*** 无装入点 ***
------------------------------end--------------------------------
怎样根据
"C”或"***"
获得该行上面一行的值
\\?\Volume{.............................................................}\
第 2 楼
发表于 2010-06-21 01:52 · 中国 广东 广州 电信
初级用户
★★
积分 89 发帖 76 注册 2009-12-13 13:41 16年会员 UID 156499 性别 男
状态 离线
@echo off
for /f "delims=" %%i in (1.txt) do (
call :Mackt "%%i"
call :Mackt "" "%%i"
)
pause
exit
:Mackt
echo.%~1|findstr "\<C" 2>nul&& echo.%string%
echo.%~1|findstr "\<无装" 2>nul&& echo.%string%
set string=%~2
*是特殊字符
第 3 楼
发表于 2010-06-21 02:11 · 中国 广东 广州 电信
初级用户
★★
积分 89 发帖 76 注册 2009-12-13 13:41 16年会员 UID 156499 性别 男
状态 离线
再加个判断会快很多:
@echo off
for /f "delims=" %%i in (1.txt) do (
call :Mackt "%%i"
call :Mackt "" "%%i"
)
pause
exit
:Mackt
if not %1=="" (
echo.%~1|findstr "\<C" 2>nul&& echo.%string%
echo.%~1|findstr "\<无装" 2>nul&& echo.%string%
)
set string=%~2
[
Last edited by gool123456 on 2010-6-21 at 02:16 ]
第 4 楼
发表于 2010-06-21 03:03 · 中国 四川 绵阳 电信
初级用户
★
积分 70 发帖 29 注册 2006-01-03 06:17 20年会员 UID 48342 性别 男
状态 离线
第 5 楼
发表于 2010-06-21 12:31 · 中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039 发帖 897 注册 2009-03-01 15:34 17年会员 UID 140302 性别 男 来自 在地狱中仰望天堂
状态 离线
@echo off&setlocal enabledelayedexpansion
for /f %%a in (1.txt) do (if defined a echo.!b!&set a=
echo.%%a|findstr /i "c: ***">nul&&set a==||set b=%%a)
pause
第 6 楼
发表于 2010-06-21 14:46 · 中国 江苏 扬州 电信
初级用户
★
积分 90 发帖 43 注册 2007-10-31 11:00 18年会员 UID 101268 性别 男
状态 离线
Originally posted by Hanyeguxing at 2010-6-21 12:31 PM:
@echo off&setlocal enabledelayedexpansion
for /f %%a in (1.txt) do (if defined a echo.!b!&set a=
echo.%%a|findstr /i "c: ***">nul&&set a==||set b=%%a)
pause
这段代码虽然很精简,但是最后一次匹配的行却打印不出来,需要做些改进。
@echo off & setlocal enabledelayedexpansion
for /f %%a in (1.txt) do (
echo.%%a|findstr /i "c: ***">nul&&echo.!b!
set b=%%a
)
[ Last edited by genteman on 2010-6-21 at 14:49 ]
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正