Board logo

标题: [文本处理] [已解决]批处理怎么通过txt文件内容来进行判断? [打印本页]

作者: fcxk    时间: 2015-5-8 21:40     标题: [已解决]批处理怎么通过txt文件内容来进行判断?

BAT窗口内容通过调用txt里面的内容条件进行本窗口运行

有点说不明白了,直接上文件。
11.bat 调用1.txt内容进行操作
作者: pcl_test    时间: 2015-5-8 21:53

回复 1# fcxk

你直接把你原本的问题描述清楚就好,重新写代码比改代码更容易
作者: fcxk    时间: 2015-5-8 22:11

本帖最后由 fcxk 于 2015-5-8 22:16 编辑

回复 2# pcl_test


    打开A.bat主程序窗口   
   调用B.ini  C.txt 内容

   B.ini 内容: 1.扫描ip/mac    2.获取电脑信息

  C.txt 内容: 扫描ip/mac 电脑信息 代码

就是 B.ini的内容选择要调用 C.txt里面的代码   在A.bat 子窗口运行


B.ini 选择有很多、不是单二个选项。就是现在用二个选项打个简单的比方
作者: pcl_test    时间: 2015-5-8 22:31

回复 3# fcxk

描述你的原本问题,不是你的代码的问题,也就是原本你想让批处理干什么,想要什么功能?描述清楚,还有为什么不整合到一个批处理文件里?
作者: fcxk    时间: 2015-5-9 08:31

本帖最后由 fcxk 于 2015-5-9 08:35 编辑

是这样的,公司有30台电脑。每天每台电脑都要用到不同的数据功能
比如说:人事部、销售部、等上十个部门。每天每个部门要调用服务器的数据。
现在我想要的是用一个BAT来调用服务器里的数据。

运作方法:

1、主程序BAT、调用各自部门里的ini文件
(部门.ini文件就是各自部门的数据选项、比如:人事部.ini里面就有:1.职工简历 2.部门报表。等等)

2、主程序BAT调用出部门.ini里的数据选项后、选择里的其中某项功能后、自动调用数据.ini文件来进行操作
(数据.ini里面的代码自动判断、主程序BAT里的数据选项、来进行操作其中连接服务器反馈的数据代码)
其他两个ini公司里已经有的,主要要用bat来调用出来就行了

现在就是想用主程序BAT能调用这两个ini文件在子窗口来进行操作
因为内容会变动、主程序BAT做好后就不用去修改、只修改其中的ini就可以做到数据修改
作者: fcxk    时间: 2015-5-9 08:39

这二天的问题都是 pcl_test 大侠帮我,人本非常感谢你。在这祝你好人一生平安
作者: pcl_test    时间: 2015-5-9 08:57

回复 5# fcxk

4楼已给出修改方案,自己试试再修改下,有问题再问
作者: fcxk    时间: 2015-5-9 09:35

其他修改好了,现在问题就是调出内容后,输入相应的选项后不会处理txt的相应命令
作者: pcl_test    时间: 2015-5-9 09:37

回复 8# fcxk
我测试可以的,是否你的修改有误
作者: fcxk    时间: 2015-5-9 09:40

type main1.ini
set main1=
set /p main1=【请输入相应序号直接回车】:
if /i "%main1%"=="1" goto ope1
if /i "%main1%"=="2" goto ope2
if /i "%main1%"=="3" goto ope3
if /i "%main1%"=="4" goto ope4
if /i "%main1%"=="5" goto ope5
if /i "%main1%"=="6" goto ope6
if /i "%main1%"=="7" goto ope7
if /i "%main1%"=="8" goto ope8
if /i "%main1%"=="9" goto ope9
if /i "%main1%"=="A" goto opea
if /i "%main1%"=="B" goto opeb
if /i "%main1%"=="C" goto opec
if /i "%main1%"=="D" goto oped
if /i "%main1%"=="E" goto opee
if /i "%main1%"=="F" goto opef
if /i "%main1%"=="G" goto opeg
if /i "%main1%"=="H" goto opeh
if /i "%main1%"=="K" goto opek
if /i "%main1%"=="M" goto opem
if /i "%main1%"=="W" goto opew
if /i "%main1%"=="Z" goto opez
if /i "%main1%"=="X" goto opex
if /i "%main1%"=="0" goto main

main1.ini就是内容选项
ope(1-Z)在一个main1-1.ini文件有相应的执行命令

现在怎么判断输入相应的序号来执行对应的main1-1.ini里的对应命令
运行在子窗口
作者: pcl_test    时间: 2015-5-9 09:46

本帖最后由 pcl_test 于 2015-5-9 09:47 编辑

回复 10# fcxk

你需要对main1-1.ini进行功能模块的修改,参考我的修改方案中对txt的修改
作者: fcxk    时间: 2015-5-9 09:47

相应的序号太多
for /f "tokens=1* delims=:" %%a in ('findstr /n .* "main1-1.ini"^|findstr ":pe1"') do set "n=%%a"
(for /f "delims=" %%b in ('more +%n% "main1-1.ini"') do if "%%b" neq "ж" (echo;%%b) else (goto :begin1))>"%temp%\ope1.bat"
:begin1
call "%temp%\ope1.bat"
pause & goto main1

序号太多,要这样写的话,代码好多啊
作者: pcl_test    时间: 2015-5-9 10:12

回复 12# fcxk
把这个调用作成类函数来用就可以了,参考
作者: fcxk    时间: 2015-5-9 10:44

回复 13# pcl_test


    太感谢 了,成功了,辛苦你了,谢谢、这几天看你写的代码也学到很多、真心谢谢
作者: fcxk    时间: 2015-5-9 10:58

本帖最后由 fcxk 于 2015-5-9 11:04 编辑

回复 13# pcl_test


    还有个问题:

1、输入序号回车执行后、返回选项窗口直接回车还是会执行前面输入的序号、而没有清空刚才输入的序号
2、执行后怎么取消按任意键继续...就是执行后直接到回输入序号那去
3、在这个BAT窗口进入选项.ini后输入0、返回主窗口、再进到这个选项.ini后、没有输入情况下回车也是会回到主窗口。没有判断输入是否有效之内
作者: pcl_test    时间: 2015-5-9 11:01

回复 15# fcxk
1、
set main1=
set /p main1=【请输入相应序号直接回车】:
2、
pause & goto input 修改为ping -n 2 0 >nul & goto input
作者: fcxk    时间: 2015-5-9 11:07

回复 16# pcl_test


    成功了,再次感谢你的帮忙。。。好人




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