2017/03/18 关于dos下使用批处理
2017-03-18 16:03
155 查看
不知道这个标题是不是很正确,反正在下面我会把问题尽量的描述清楚。
问题:问题来源于最近需要使用一个软件,该软件是dos界面下面,输入指令,针对某数据进行不同类别条件,不同参数的重复计算,结果会自动保存。根据控制变量法,每次只改变一个条件,那么所有参数的组合会达到144种,每种组合下,改程序会运行3分钟到4分钟左右,这样一算,对同一组数据,就需要400多分钟的计算,并且,需要手动修改指令144次,过程十分的枯燥而且繁琐,还会将原来零碎的时间打乱,注意力无法集中。而且,后面还有两组数据需要同样的过程,总的将近400多次的手工操作。
17号晚上的时候,利用office的查找与替换,将144条指令全部生成完毕,今天需要做的工作就是将其从文档中复制到dos界面下,点击确认运行,但是仍旧需要没3~4分钟处理一次。
方法:忍无可忍之下,终于开始寻求改变,想到了批处理。但是以前没有使用过这个,现成上网上搜索了一下。大概明白了其实就是写一个txt文档,将后缀改成bat,然后双击就可以运行。想要观察运行的过程的话可以echo进行提示,最后只需要加上pause就可以保持窗口。
于是,我将我的工作利用批处理分成了一下几个步骤:
- 首先,echo off;
- cd 到C盘,因为批处理文件是在桌面的,所以直接cd \ 。但是这个不具有通用性,当你的批处理文件不在C盘及其子目录下面的时候,可能会出问题,建议写成C:(这一步只是我猜想,没有验证)
- 然后cd到我软件所需要输入指令的文件夹下面;
- 然后剩下的部分就是一条一条我需要执行的指令了,因为之前已经在office中完成,所有直接复制过来就可以了,把原来的一些非指令注释前面都加上echo,就不会报错,还具有提示功能
- 最后加上pause,方便结束之后选择是否要在窗口中查看信息
txt中的指令如下:
上面就是我批处理的整个过程。
另外,发现,即使bat文件中存在dos中不能处理的指令,也不会影响后续指令的执行,只是会报出一个提示,接着执行后面的指令,这大概也是我最后pause的原因吧,方便看一看有没有什么地方出现异常。
当然上述过程仍旧存在大量可以改进的地方,因为现在的指令是通过office的查找替换手工得到的,之后的改进点可以在写出for循环,不仅批处理中的代码量会大大减少,而且手工操作的时间也会节省下来。
问题:问题来源于最近需要使用一个软件,该软件是dos界面下面,输入指令,针对某数据进行不同类别条件,不同参数的重复计算,结果会自动保存。根据控制变量法,每次只改变一个条件,那么所有参数的组合会达到144种,每种组合下,改程序会运行3分钟到4分钟左右,这样一算,对同一组数据,就需要400多分钟的计算,并且,需要手动修改指令144次,过程十分的枯燥而且繁琐,还会将原来零碎的时间打乱,注意力无法集中。而且,后面还有两组数据需要同样的过程,总的将近400多次的手工操作。
17号晚上的时候,利用office的查找与替换,将144条指令全部生成完毕,今天需要做的工作就是将其从文档中复制到dos界面下,点击确认运行,但是仍旧需要没3~4分钟处理一次。
方法:忍无可忍之下,终于开始寻求改变,想到了批处理。但是以前没有使用过这个,现成上网上搜索了一下。大概明白了其实就是写一个txt文档,将后缀改成bat,然后双击就可以运行。想要观察运行的过程的话可以echo进行提示,最后只需要加上pause就可以保持窗口。
于是,我将我的工作利用批处理分成了一下几个步骤:
- 首先,echo off;
- cd 到C盘,因为批处理文件是在桌面的,所以直接cd \ 。但是这个不具有通用性,当你的批处理文件不在C盘及其子目录下面的时候,可能会出问题,建议写成C:(这一步只是我猜想,没有验证)
- 然后cd到我软件所需要输入指令的文件夹下面;
- 然后剩下的部分就是一条一条我需要执行的指令了,因为之前已经在office中完成,所有直接复制过来就可以了,把原来的一些非指令注释前面都加上echo,就不会报错,还具有提示功能
- 最后加上pause,方便结束之后选择是否要在窗口中查看信息
txt中的指令如下:
echo off echo 切换到根目录 C: echo 切换路径 cd C:\***S\***s Rem 切换到软件所在的文件夹 echo 某条件参数为***** 某条件参数为****** instructions Rem 需要执行的语句 echo 某条件参数为***** 某条件参数为****** instructions Rem 需要执行的语句 echo 某条件参数为***** 某条件参数为****** instructions Rem 需要执行的语句 echo 保留窗口 pause Rem 保留窗口
上面就是我批处理的整个过程。
另外,发现,即使bat文件中存在dos中不能处理的指令,也不会影响后续指令的执行,只是会报出一个提示,接着执行后面的指令,这大概也是我最后pause的原因吧,方便看一看有没有什么地方出现异常。
当然上述过程仍旧存在大量可以改进的地方,因为现在的指令是通过office的查找替换手工得到的,之后的改进点可以在写出for循环,不仅批处理中的代码量会大大减少,而且手工操作的时间也会节省下来。
相关文章推荐
- 使用dos批处理文件的特殊文件
- 使用dos批处理文件的意义与应用方法
- 【ENVI二次开发】关于批处理(Batch)模式与ENVI_DOIT的使用
- 【ENVI二次开发】关于批处理(Batch)模式与ENVI_DOIT的使用
- 关于DOS的批处理学习过程之 四 (net命令)
- 关于vim的一些使用以及Dos文件到Linux、Mac下问题
- 批处理(DOS)----------win7 版 net send 命令 MSG使用详解
- 【dos BAT】关于DOS的批处理学习过程 之四 获取当前目录
- 关于批处理中FOR语句的使用说明与学习技巧
- 【dos BAT】关于DOS的批处理学习过程
- (dos)使用批处理
- 【DOS】写批处理必备的一些命令参数使用技巧
- DOS常用命令与批处理使用大全
- 使用dos批处理文件的几个高级命令,判断
- 关于dos下使用ghost找不到镜像文件
- 【dos BAT】关于DOS的批处理学习过程 之三 (活学活用复制文件的批处理)
- Windows下使用批处理实现启动关闭mysql_DOS/BAT
- 关于使用Notepad++编译C/C++代码时,dos界面会出现中文乱码现象
- 关于MS-DOS下的批处理
- windows xp 使用bat文件DOS批处理文件设置网络地址为固定或者动态获取