.bat学习-基础语法(常用)
一般来说,脚本或者语言都有相同地方
定义变量,输入,输出,判断条件等等。知道的相同之处,我们就可以借助强大的搜索引擎进行查找我们想要知道的东西。
bat为批处理脚本BATCH。现在只知道是使用于windows操作系统用来执行操作的批处理脚本
基础之前setlocal和endlocal
在一个bat文件内定义变量之前,一定要文件头部调用一个命令
setlocal
设置临时改变系统变量,,这样我们定义或修改变量,只对本bat文件有效。
我们获取到的系统环境变量如PATH,或者JAVA_HOME只是系统环境变量的值的拷贝,不会对原系统环境变量有任何影响
假设我们系统环境变量Path=“aa”
系统变量进行修改为Path=“aabb”
当bat文件执行完毕,
会默认调用endlocal。结束批处理文件中环境改动的本地化操作。
我们在cmd命令行中执行下面命令
echo %PATH%
输出的还是原本的系统环境变量值
但是如果我们主动调用endlocal命令后,在进行PATH变量进行修改,
然后又调用call "aa.bat" start ,,如果我们在aa.bat文件中用到Path变量时,就不是我们想要的变量值aa的。
基础语法
setlocal enabledelayedexpansion
设置延迟环境变量扩展,
cmd脚本会对每一行命令进行预处理,有一个变量识别过程,遇到%引用变量时,会查找这个变量的值,然后对这个变量名称进行值替换
对于下面的预处理,会先查找到a的值为10,然后替换echo %a%,==>echo 10,这就不是我们预期的结果,
set a=10
set a=12&echo %a%
设置启用这个选项后就可以正确输出我们预期,需要进行一点小改动,echo %a%要改成 echo !a!
1. 定义变量
set 变量名=变量值
2.输出
2.1 输出信息到控制台
echo "字符串"
2.2 新建文件,输出内容到文件
ECHO 文件内容>文件名
>是将文件中内容全部替换,>>是在文件最后追加内容
3. 条件控制语句
if aa==AA(
echo "is equal"
)else(
echo "compare is not equal"
)
if exist 判断文件是否存在
if not exist not表示相反,
也可以使用下面的equ,等来尽心操作比较
equ 等于 ==
gtr 大于 >
geq 大于或等于 >=
lss 小于 <
leq 小于或等于 <=
neq 不等于 !=
4 循环
for %%I in (A,B,C) do echo %%I
以逗号为分隔符,循环三次输出
A
B
C
将逗号换为空格、跳格、逗号或等号,输出的结果和上面都是一样的。这些符号都是作为分割元素的符号
5其他常用语法
:name
//设置标签,可以使用goto name,使程序跳到这个标签继续执行程序 goto
//流程跳转语句,同上解释 shift
//更改批处理文件中可替换参数的位置,原本最大参数%0~%9
//如果有11个参数时,需要调用shift /1 将第2个参数作为%0位置,这样我们
//就可以获取到第11个参数,也就是%9
//shift 如果后面不带/n,则默认截掉第一个参数,第二个作为%0 call "xxx.bat" arguments
//在当前批处理文件中调用另一个bat文件,执行完后会回到当前文件中继续执行操作,arguments作为执行xxx.bat文件的启动参数
6其它系统变量
%CD% //返回当前目录路径
%DATE% //返回当前日期
%ERRORLEVEL%
//系统 返回上一条命令的错误代码。通常用非零值表示错误
%NUMBER_OF_PROCESSORS%
//系统 指定安装在计算机上的处理器的数目
%temp%=C:\Users\HELLOW~1\AppData\Local\Temp
//返回系统的临时文件存放路径
%~nx0 就是表示程序的名称+扩展名
"%~f0" : 简单说就是表示当前命令的绝对路径.
"%*" : 我们知道 %1 表示第一个参数, 依次类推, %2 表示第二个.... 那么 %* 就很好理解了, 代表所有参数.
@echo (off|on)关闭或打开回显命令
PAUSE 停止dos窗口,一般在最后调用,防止dos窗口关闭
.bat学习-基础语法(常用)的更多相关文章
- python2学习------基础语法5(常用容器以及相关操作)
1.list(列表) #生成数据list a=[x for x in range(10)]; #print a; #遍历list for i in a: pass; #print i; #追加元素 a ...
- Vue学习-基础语法
Vue v-if指令 Vue.js的指令是以v-开头的,它们作用于HTML元素,指令提供了一些特殊的特性,将指令绑定在元素上时,指令会为绑定的目标元素添加一些特殊的行为,我们可以将指令看作特殊的HTM ...
- Mysql学习基础语法
-- Mysql 数 据 库 语 法 创建数据库 create database 数据库名; 创建表 ) ); 复制表和数据 create table 复制后新的表名 select * from 旧表 ...
- VBA 开发学习--基础语法
MsgBox "开始学习VBA" '提示框 Dim str As String '声明str变量是string类型 Let str = "一起来看流星雨" '给 ...
- python2学习------基础语法4(模块)
1.整体结构层次(a.py,b.py) 目标:b.py文件中导入a.py里面定义的class A,并调用A类里面的属性或相关方法. 2.模块导入 <1> __init__.py < ...
- python2学习------基础语法1 (变量、分支语句、循环语句、字符串操作)
1.变量类型 Numbers(数字):int,float,long String(字符串) List(列表) tuple(元组) dict(字典) bool(布尔):True,False # 删除变量 ...
- Windows CMD .bat 批处理基础语法
格式 @echo off 代码..... pause 不会逐行将命令打印. rem [注释] 关键字注释. :: [注释] 符号注释. echo 打印到控制台. >> 输出重定向.追加. ...
- VBA 开发学习--基础语法3
VBA字符串函数列表 Trim(string) 去掉string左右两端空白 Ltrim(string) 去掉string左端空白 Rtrim(string) 去掉string右端空白 Len(str ...
- VBA 开发学习--基础语法2
VBA中的运算符 算数运算符及其作用 + 求两个数的和 - 求两个数的差:求一个数的相反数 * 求两个数的积 / 求两个数的商(保留小数位 5/2=2.5) \ 整除 (保留整数位 ...
随机推荐
- 【lazy标记得思想】HDU3635 详细学习并查集
部分内容摘自以下大佬的博客,感谢他们! http://blog.csdn.net/dm_vincent/article/details/7769159 http://blog.csdn.net/dm_ ...
- 团队项目第六周——Alpha阶段项目复审(名字很难想队)
Alpha阶段项目复审 小组 优点 缺点 排名 小谷围驻广东某工业719电竞大队 一个贴近大学生生活的二手交易平台.界面美观功能完善. 部分功能未完善,没有第三方登录 1 中午吃啥队 系统完善,界面简 ...
- 抱SQL SERVER大腿之我爱用视图(对大数据量的管理)
我们拥有一个巨大的表,两千多万条记录.也许在行家眼里,两千多万条记录顶多算条毛,不过这条毛也忒粗壮了一点:我们的数据库占用的空间已经达到5G多了.不要以为是日志文件在搞鬼,日志文件可以自动收缩的,最多 ...
- Python学习-3.Python的模块加载
Python中使用import关键字进行模块加载. 先在Visual Studio中建立PythonModuleLoad项目作为演示. 1.同目录加载 建立SameFolder.py文件 写入代码: ...
- azkaban作业参数使用介绍
azkaban作业参数使用介绍 参数传递是调度系统工作流运行时非常重要的一部分,工作流的执行,单个作业的执行,多个工作流之间的依赖执行,历史任务重算,都涉及参数传递和同步. azkaban的工作流中的 ...
- EGOCache缓存框架详细讲解
EGOCache是一个轻量级的缓存框架.用法简单方便,在现在的项目中,我就用到EGOCache来缓存下载过的照片和字符串. 有人可能会问到,缓存照片还需要用EGOCache吗?AFNetworking ...
- python的标准库
第三方库放的位置:E:\python\Lib\site-packages 通过命令查询:import sys print (sys.path) 标准库:E:\\python\\lib 第三方库的上一级 ...
- C# WebAPI中使用Swagger
随着互联网技术的发展,现在的网站架构基本都由原来的后端渲染,变成了:前端渲染.前后端分离的形态,而且前端技术和后端技术在各自的道路上越走越远. 前端和后端的唯一联系变成了API接口:API文档变成了前 ...
- 如何优化代码中大量的if/else,switch/case?
前言 随着项目的迭代,代码中存在的分支判断可能会越来越多,当里面涉及到的逻辑比较复杂或者分支数量实在是多的难以维护的时候,我们就要考虑下,有办法能让这些代码变得更优雅吗? 正文 使用枚举 这里我们简单 ...
- 修正eth0,解决虚拟机桥接问题
centos 中没有 ifcfg-eth0 配置文件的解决办法 1.也就是说是centos6改用NetworkManager方式管理网络了,可以运行如下命令进行确认: chkconfig --list ...