|
lianjiang2004
金牌会员
     
积分 3946
发帖 1884
注册 2006-1-20
状态 离线
|
『楼 主』:
请教:关于文本文件中特定字符的判断问题。
使用 LLM 解释/回答一下
有一文本文件,hdmini.txt,其格式如下,我想判断此文件中是否有1:7。
N:N DOS WIN PRI/LOG ACT HIDE ID FILE SYSTEM LABEL TOTALmb FREEmb
1:1 = C: C: PRIMARY YES NO 0B FAT32 NO NAME 7538 3663
1:2 = E: PRIMARY NO YES 17 NTFS/HPFS 7467 0
1:3 = F: D: LOGICAL NO NO 07 NTFS/HPFS 10001 7161
1:4 = G: E: LOGICAL NO NO 07 NTFS/HPFS 15005 7122
1:5 = D: F: LOGICAL NO NO 0B FAT32 APPZ 30004 15073
1:6 = H: G: LOGICAL NO NO 07 NTFS/HPFS 44453 16354
我用了两种处理方法,请教为何第二种不行?错在哪里?谢谢。
rem 方法1:
set act=1:7
For /f "tokens=1" %%i In ('type hdmini.txt ^| find "%act%"') do (
if errorlevel=0 goto sub_018
)
cls
Echo ------------------------------------------------
echo.
echo 警告:自定义分区号"%act%"不存在,需重新输入。
echo.
Echo ------------------------------------------------
echo.
pause
******************************************************
rem 方法2:
set act=1:7
type hdmini.txt ^| find "%act%" >nul
if errorlevel=0 goto sub_018
cls
Echo ------------------------------------------------
echo.
echo 警告:自定义分区号"%act%"不存在,需重新输入。
echo.
Echo ------------------------------------------------
echo.
pause
×××××××××××××××××××××××××
我试了一下,改成下面这样就行了。原因不明。
-----------------------------------
@echo off
set act=1:7
find "%act%" hdmini.txt >nul
if not errorlevel 1 goto sub_018
cls
Echo ------------------------------------------------
echo.
echo 警告:自定义分区号"%act%"不存在,需重新输入。
echo.
Echo ------------------------------------------------
echo.
pause
goto exit
:sub_018
echo ok
pause
:exit
Last edited by lianjiang2004 on 2007-6-6 at 06:45 PM ]
|

Windows 一键还原
http://www.yjhy.com |
|
2007-6-6 17:51 |
|
|
wudixin96
银牌会员
    
积分 1928
发帖 931
注册 2007-1-6
状态 离线
|
『第 2 楼』:
使用 LLM 解释/回答一下
type hdmini.txt ^| find "%act%" >nul
if errorlevel=0 goto sub_018
两个错误:
一、hdmini.txt后没必要加^。完全可以find "%act%" hdmini.txt
二、if errorlevel=0没有这种用法。应该是if errorlevel 0
|
|
2007-6-6 18:13 |
|
|
lianjiang2004
金牌会员
     
积分 3946
发帖 1884
注册 2006-1-20
状态 离线
|
|
2007-6-6 18:17 |
|
|
lianjiang2004
金牌会员
     
积分 3946
发帖 1884
注册 2006-1-20
状态 离线
|
|
2007-6-6 18:25 |
|
|
lianjiang2004
金牌会员
     
积分 3946
发帖 1884
注册 2006-1-20
状态 离线
|
|
2007-6-6 18:28 |
|
|
wudixin96
银牌会员
    
积分 1928
发帖 931
注册 2007-1-6
状态 离线
|
|
2007-6-6 18:38 |
|
|
lianjiang2004
金牌会员
     
积分 3946
发帖 1884
注册 2006-1-20
状态 离线
|
|
2007-6-6 18:44 |
|
|
lianjiang2004
金牌会员
     
积分 3946
发帖 1884
注册 2006-1-20
状态 离线
|
『第 8 楼』:
使用 LLM 解释/回答一下
我试了一下,改成下面这样就行了。原因不明。
-----------------------------------
@echo off
set act=1:7
find "%act%" hdmini.txt >nul
if not errorlevel 1 goto sub_018
cls
Echo ------------------------------------------------
echo.
echo 警告:自定义分区号"%act%"不存在,需重新输入。
echo.
Echo ------------------------------------------------
echo.
pause
goto exit
:sub_018
echo ok
pause
:exit
|

Windows 一键还原
http://www.yjhy.com |
|
2007-6-6 18:45 |
|
|
wudixin96
银牌会员
    
积分 1928
发帖 931
注册 2007-1-6
状态 离线
|
 『第 9 楼』:
使用 LLM 解释/回答一下
@echo off
set act=1:7
type hdmini.txt | find "%act%" >nul
if %errorlevel%==0 goto sub_018
cls
Echo ------------------------------------------------
echo.
echo 警告:自定义分区号"%act%"不存在,需重新输入。
echo.
Echo ------------------------------------------------
echo.
pause
exit
:sub_018
echo 自定义分区号"%act%"存在
pause
|
|
2007-6-6 18:49 |
|
|
wudixin96
银牌会员
    
积分 1928
发帖 931
注册 2007-1-6
状态 离线
|
『第 10 楼』:
使用 LLM 解释/回答一下
IF ERRORLEVEL number command
IF string1==string2 command
IF EXIST filename command
NOT 指定只有条件为 false 的情况下, Windows XP 才
应该执行该命令。
ERRORLEVEL number 如果最后运行的程序返回一个等于或大于
指定数字的退出编码,指定条件为 true。
string1==string2 如果指定的文字字符串匹配,指定条件为 true。
EXIST filename 如果指定的文件名存在,指定条件为 true。
|
|
2007-6-6 18:50 |
|
|
lianjiang2004
金牌会员
     
积分 3946
发帖 1884
注册 2006-1-20
状态 离线
|
|
2007-6-6 18:56 |
|