Board logo

标题: [文本处理] 新人求助如何创建一个具有查询功能的批处理 [打印本页]

作者: liaoxy    时间: 2015-1-21 10:57     标题: 新人求助如何创建一个具有查询功能的批处理

大家好:
   我想创建一个具有查询功能的批处理,比如我把下面的数据导入
  M01-MAIN  192.168.1.1
   M02-MIAN  192.168.1.2

然后批处理显示:欢迎使用IP查询,请输入序号:
然后我输入M01-MAIN  ,它就显示192.168.1.1



谢谢
作者: pcl_test    时间: 2015-1-21 12:25

回复 1# liaoxy
  1. @echo off
  2. :main
  3. set /p w=请输入要查询的关键字:
  4. (findstr /c:"%w%" "test.txt")||echo 没有找到相关字段!
  5. echo.&pause
  6. cls
  7. goto main
复制代码
  1. @echo off
  2. :main
  3. set /p w=请输入要查询的关键字:
  4. for /f "tokens=1-2 delims= " %%a in ('findstr /c:"%w%" "test.txt"') do (
  5. if "%%b" neq "" (echo %%b)
  6. pause&cls
  7. goto main
  8. )
  9. echo 没有找到相关字段!
  10. pause&cls
  11. goto main
复制代码

作者: 慕夜蓝化    时间: 2015-1-21 14:55

本帖最后由 慕夜蓝化 于 2015-1-21 15:24 编辑
  1. @echo off
  2. :fi
  3. set/p fi=请输入路径名^<%cd%\1.txt^> :&cls
  4. if not defined fi (
  5.     goto :fi   
  6. ) else (
  7.     if not exist "%fi%" echo,%fi%   文件不存在&goto :fi
  8. )
  9. call :a&echo,按任意键退出...&pause >nul&exit
  10. :a
  11. set/p no=欢迎使用IP查询,请输入序号 :
  12. if not defined no (
  13.     goto :a
  14. ) else (
  15.     if /i "%no%"=="finish" (
  16.         goto :eof
  17.     ) else (
  18.         if /i "%no%"=="cls" cls&goto :a
  19.     )
  20.     for /f "tokens=1*" %%a in ('findstr /i "\<%no%\>" "%fi%" ^|^|echo,no 输入错误,或%no%不存在') do (
  21.         echo,%%b&goto :a
  22.     )
  23. )
复制代码
嗯嗯,这很有趣。你应该测试一下。
—添加了cls,这样会更舒服。
—添加了文件的存在判断,你不用担心是否打错了某个单词,或者汉字。
作者: liaoxy    时间: 2015-1-22 13:13

回复 3# 慕夜蓝化


    你好,我想把路径直接设置好,比如c:\1.txt.直接显示输入序号哪里,应该怎么改?
作者: DAIC    时间: 2015-1-22 13:26

回复 4# liaoxy


@echo off
set "fi=c:\1.txt"
:a
set/p no=欢迎使用IP查询,请输入序号 :
if not defined no (
    goto :a
) else (
    if /i "%no%"=="finish" (
        goto :eof
    ) else (
        if /i "%no%"=="cls" cls&goto :a
    )
    for /f "tokens=1*" %%a in ('findstr /i "\<%no%\>" "%fi%" ^|^|echo,no 输入错误,或%no%不存在') do (
        echo,%%b&goto :a
    )
)




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2