Windows下的bat原来可以为我们做很多
用了windows系统这么多年了,对bat也不是很了解。最近研究了一下bat的用法。这里就大概列举一下自己的用法
基本命令
echo
echo我们可以理解成程序中的输出,和我们Java的System.out.println是一个效果。
关于echo有两种设置 echo on 和echo off.前者是在此命令之后的命令都会显示输出,后者则不显示后面的执行命令了
@
- @ 的功能和echo off的功能一样都是让命令不显示的。唯一的区别的@ 影响的是当前行而echo off影响的是在其后的所有的命令行。
@echo off
redis-server.exe redis.conf
@pause
- 例如上面的bat文件的语句最终执行的效果是 echo off 这个命令不显示 因为@ 控制当前行不显示。redis-server.exe redis.conf 这个命令也不显示 。因为echo off之后的命令都不现实。除非遇到echo on在此开启了显示的功能。
call
- call别人说和start功能一样,但是自己测试call无法使用,取而代之的我用的是start, start和call的作用就是在本bat文件中调用了别的bat文件。如果不用start或者call的话,那么本bat文件将执行完别的bat就不在继续执行本bat的其他语句了。相当于Java中的break了。
pause
- pause是暂停的意思,就是bat执行完了之后cmd窗口不会关闭而是在pause的地方输出 press any key …. 。他和exit相对。exit是指程序结束后就关闭窗口。正常pause和exit在文件的最后存在。
rem
- 作为程序员都是知道注释的重要性的。就算是自己写的代码没有良好的注释过一段时间自己都会忘记这段代码的作用。而在bat批处理语言中rem就是起到注释的作用。
rem 我是注释
参数传递
Java或者其他语言中都是可以进行参数传递的,这样可以增加各个模块的联系,bat也是可以传递参数的。他的传递参数的方法比较特别,不需要指定参数的类型。只是按参数的顺序来获取的。分别用%0~%9来获取参数。这样也就是说参数只能是9个。其中%0表示的bat方法的本身。%1~%9表示第几个参数。
新建一个method.bat,内容为echo %1。我们新开cmd窗口。首先cd到method.bat所在的文件目录中。执行语句 method.bat helloworld 程序结果 为 helloworld。
特殊命令
- 上面的一些基础的命令之外还有一些属于高级命令 ,正常情况写我们做逻辑判断的时候经常用到 if goto choice for,这四个使我们经常用到。
if
if 就是我们用到的程序判断,根据条件执行不同的语句。其中的基本格式如下
if “%1”==”test” echo test
上面的代码执行的效果就是输入了test的参数就会输出test 结果,输入的可以是“ hello world ” ,在程序中的参数就是带引号的参数。
if [not] exist 判断不存在是执行的语句
if exist 判断存在时存在的语句
if errorlevel num 根据程序的返回值判断
goto
- goto就是跳转到哪里 基本语法
goto zxh
:zxh
echo 跳转啦
- 其中goto去的端点 需要用:开头
choice
这个选择项用的挺多的,因为考虑程序的大众化,我们程序正常会给用户提供选择,这里就需要用到了choice了。
关于choice中有哪些参数,我们可以打开cmd窗口执行 choice /?
上面的一张图片已经解释了choice的选项说明,我们有设么格式的提示选项上面的图片事列已经列出了五种类型的。我们根据不同需求些不同的bat.
其中在/c后面的提示列表的编号我们一次是1,2,3….N。在我们根据errorlevel的值判断的时候必须从高到底比如如下一段代码才有效
@echo off
choice /C dme /M "defrag,mem,end"
if errorlevel 3 goto end
if errorlevel 2 goto mem
if errorlevel 1 goto defrag
:defrag
echo I am defrag
goto end
:mem
echo I am mem
goto end
:end
echo good bye
pause
for
- for循环是我们遍历数据用的最多了。我们经常通过for来执行相同理念的操作。
FOR %%variable IN (set) DO command [command-parameters]
- 上面的for循环其实用Java语言写就是一下代码
for(Object obj in List<Object>){
//执行操作
}
- 所以上面的variable就是下面的obj
- set 就是下面的list集合
- command是我们的执行操作
command parameters 是我们执行操作的时候用到的参数正常就是variable(obj)
Windows下的bat原来可以为我们做很多的更多相关文章
- 在Windows下使用BAT调度存储在资源库中的KTR
描述: 在Windows下使用BAT调度存储在资源库中的KTR 准备环境: 1.ktr文件(该KTR必须是存储在资源管库中的) 2.bat文件 @echo off D: cd D:\software\ ...
- 安装在Linux下的jenkins执行windows下的bat命令
launch method里面没有 launch agent via java web start 默认是disable 需要改成random 转载自: http://blog.csdn.net/so ...
- windows下通过.bat运行java程序
在windows下运行Java项目,单独的jar可以使用,java -jar xxx.jar 运行,如果是一个zip包,里面包含了class文件和所依赖的jar的时候,可以使用 (也可以以看看这里): ...
- Windows下批处理文件(.bat)的使用
cmd文件和bat文件的区别:在本质上两者没有区别,都是简单的文本编码方式,都可以用记事本创建.编辑和查看.两者所用的命令行代码也是共用的,只是cmd文件中允许使用的命令要比bat文件多.cmd文件只 ...
- openssl windows 下 编译 bat
++++全部++++++++ @echo offrem set sslpath=C:\0openssl\rem echo %sslpath% set X86_lib=C:\0openssl\32\li ...
- Windows下的bat中文乱码问题
起初拿到一个bat文件,我在修改时看到编码是gb2312,我就直接将其转变为了utf8...但是在执行后的黑窗口出现中文乱码问题,最后网上获取帮助是修改编码为ANSI编码,确实不出现乱码了,ANSI是 ...
- Windows下通过bat脚本实现自动上传文件到ftp服务器
@Echo Off Echo open ip_address [port] >ftp.up Echo [username]>>ftp.up Echo [password]>&g ...
- windows下用bat启动jar包,修改cmd标题(title)
新建start.bat,输入以下内容即可. @echo off title myprogress-%date%-%time%-%cd% java -jar myprogress.jar
- windows下基于bat的每1分钟执行一次一个程序
@echo off cls mode con cols=35 lines=6 & color 5B :p call python C:\省局监控\ahwater_perf_monitor.py ...
随机推荐
- c++汉诺塔问题
c++解决汉诺塔问题 题目描述 约19世纪末,在欧州的商店中出售一种智力玩具,在一块铜板上有三根杆,最左边的杆上自上而下.由小到大顺序串着由64个圆盘构成的塔.目的是将最左边杆上的盘全部移到中间的杆上 ...
- C++学习书籍推荐《Inside the C++ Object Model》下载
百度云及其他网盘下载地址:点我 作者简介 Stanley B. Lippman is Architect with the Visual C++ development team at Microso ...
- C语言学习书籍推荐《C语言接口与实现:创建可重用软件的技术》下载
<C语言接口与实现:创建可重用软件的技术>概念清晰.实例详尽,是一本有关设计.实现和有效使用C语言库函数,掌握创建可重用C语言软件模块技术的参考指南.书中提供了大量实例,重在阐述如何用一种 ...
- mysql重启遇到的问题
不知道是不是每次更新 MySQL 软件之后都需要执行数据库升级指令?在我进行过的几次软件升级之后,总会在 MySQL 的日志中见到 “[ERROR] Missing system table mysq ...
- v8环境搭建采坑记录
项目组有把js接入C++服务求的需求,故开始了v8接入的工作,用了一天多时间,v8才在centos环境上成功安装,过程中踩了很多坑,下面将采坑过程记录如下: centos下编译安装v8: 查看ce ...
- MPP install
greenplum install 注意事项:1.hostname 不能大写##2.如果segment和mirror副本数比较大,建议调整/etc/ssh/sshd_config的maxconnect ...
- Java 客户端负载均衡
客户端侧负载均衡 在下图中,负载均衡能力算法是由内容中心提供,内容中心相对于用户中心来说,是用户中心的客户端,所以又被称为客户端侧负载均衡 自定义实现Client Random负载均衡 获取所有的服务 ...
- Spring Bean 的装配方式
Spring Bean 的装配方式 装配 Bean 的三种方式 一个程序中,许多功能模块都是由多个为了实现相同业务而相互协作的组件构成的.而代码之间的相互联系又势必会带来耦合.耦合是个具有两面性的概念 ...
- 【原】docker部署单节点consul
docker下部署单节点的consul,最重要的是在run consul时,配置-bootstrap-expect=1 docker run --name consul1 -d -p : -p : - ...
- 《深入理解 Java 内存模型》读书笔记
![img](https://mmbiz.qpic.cn/mmbiz_jpg/1flHOHZw6RtPu3BNx3zps1JhSmPICRw7QgeOmxOfTbCT3RLgIo4qRpn6xL4qg ...