脚本语言之Lua与Windows批处理的初步认识
2013-02-08 21:46
429 查看
1.脚本语言介绍
脚本语言是一种动态语言(数据类型不在声明的时候确定,而是在使用的时候确定),是一种编程语言,用来控制软件应用程序,脚本通常以文本(如ASCII)保存,只在被调用时进行解释或编译。脚本语言是为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的计算机编程语言。它的命名起源于一个脚本“screenplay”,每次运行都会使对话框逐字重复。早期的脚本语言经常被称为批量处理语言或工作控制语言。
一个脚本通常是解释运行而非编译。脚本语言通常都有简单、易学、易用的特性,目的就是希望能让程序员快速完成程序的编写工作。而宏语言(EXCEL)则可视为脚本语言的分支,两者也有实质上的相同之处。
2.值与类型
2.1 Lua
Lua是一种动态类型语言。这意味着变量没有类型,只有值才有类型。语言中不存在类型定义。而所有的值本身携带他们自己的类型信息。行注释 --,多行注释 --[[ ]]。Lua中有八种基本类型:nil、boolean、number、string、function、userdata、thread、and
table。
nil用来描述一个无意义的值。
boolean类型只有两种值:false和true。nil和false都能导致条件为假,而另外所有的值都被当作真。
number表示实数。
string表示一串字符的数组;字符串可以包含任何8位字符,包括结束符('\0’);字符串可以用单引号与双引号来使用。
userdata类型用来将任意C数据保存在Lua变量中,这个类型相当于一块原生的内存,userdata不能在Lua中创建出来,也不可能在Lua中修改;这样的操作只能通过C来修改,这一点保证了宿主程序完全掌管其中的数据。
thread类型用来区别独立的执行线程,它被用来实现协同例程。
table类型实现了一个关联数组,数组可以用任何东西(除nil)做索引,而不限于数字,table可以以不同类型的值构成,table是lua中唯一的一种数据结构。
2.2 Windows批处理
Windows中的批处理也是动态语言,跟C语言中的数据类型比较相近。行注释 rem或::,C语言中的多行注释/**/也适用于批处理。
3.变量、表达式与控制结构
3.1 Lua
3.1.1
变量
Lua中有三种变量:全局变量、局部变量,还有table的域。任何变量都被假定为全局变量,除非显示的以local修饰定义;局部变量有其作用范围:局部变量可以被定义在它作用范围中的函数自由使用。在变量首次声明时,变量的值均为nil。3.1.2
表达式
1) 数学运算操作符Lua支持常见的数学运算操作符:二元操作 +、-、*、/、%、^(幂);一元操作
-。如果对数字转化成字符可以用string中的format。
2) 比较操作符
Lua中的比较操作符:==、~=(不等于)、<、>、<=、>=。这些操作的结果不是false就是true。
3) 逻辑操作符
Lua中的逻辑操作符:and、or、not。和控制结构一样,所有的逻辑操作符把false和nil作为假,其他的都是真的。
4) 连接符
Lua中字符串的连接操作符:..(就是两个点)
5) 取长度操作符
取长度操作符:#。我自己测试时没有成功过,也不知道是不是版本问题。
6)
函数定义
function block end。block是语句块
3.1.3
控制结构
exp是表达式,block是语句块1) if
if exp then block end;
if exp then block elseif exp then block else block end;
2) while
while exp do block end;
3)
repeat
repeat block until exp;
4) for
for循环有两种形式:一种是数字形式,另一种是一般形式
l 数字形式
数字形式跟一般C语言中的for循环比较相近。语法如下:
for name ‘=' exp ‘,' exp ‘,' exp do block end;block将把name作循环变量。从第一个exp开始起,直到第二个exp的值为止,其步长(每次变化的值)为第三个exp。更确切的说,一个for循环看起来是如下模式:
for v = e1, e2, e3 block end。
注意点:
如果第三个表达式(步长)没有给出时,会把步长设为1。
你可以用break来退出for循环
l l
一般形式
一般形式的for通过一个叫做迭代器(iterator)的函数工作。每次迭代,迭代器函数都会被调用以产生一个新的值,当这个值为nil时循环停止。语法如下:
for
namelist in explist do block end
namelist = {Var = “”, Var1 = “”}
for语句类似如下形式
for var_1,….,var_n in explistdo block end
等价于如下代码
do
local f,s,var = explist
while true do
local var_1,…,var_n = f(s, var)
var = var_i
if var == nil then break end
block
end
end
需注意以下几点:
explist 只会被计算一次。它返回三个值,一个迭代器函数,一个状态,一个迭代器的初始值。
f、s、以及var都是不可见的变量。这里给他们起的名字都只是为了解说方便。
你可以使用break来跳出for循环
循环变量var_i对于循环来说是一个局部变量;你不可以在for循环结束后继续使用。如果你需要保留这些值,那么就在循环结束前赋值到别的变量里去。
3.2.Windows批处理
3.2.1 变量
windows批处理的变量最常见的是环境变量,环境变量中的PATH变量在编译器的配置时会经常碰到,因为配置好PATH变量后,你在cmd(命令提示符)中输入的命令才会被执行。比如说在cmd中你输入的是xx.exe,而PATH中有xx.exe的路径,则该exe会被执行。3.2.2 表达式
1)比较操作符
比较操作符:==、EQU(等于)、NEQ(不等于)、LSS(小于)、LEQ(小于或等于)、GTR(大于)、GEQ(大于或等于);以字符来表示比较操作时需要有空格。
2) 逻辑操作符
逻辑操作符:not,逻辑非
3.2.3
控制结构
1) ifif exp block;
如果是有括弧(不是{})是固定的,格式如下两种:
if exp (block)
if exp (
block)
如果是有else时,格式也是固定模式。如下三种:
if exp (block)else (block);
if exp (
block) else (
block);
if exp (
block) else (block);
2) for
forvar in (set)doblock;简单的实例:for %%i in (1 2 3 4 5) do echo %%i;变量i会从()中取出数据,循环5次并输出
循环也可以用goto命令来实现。goto命令下面会提到
4.Windows批处理中的常见命令
在cmd(命令提示符)中输入命令加/?会显示命令的帮助文档。如dir /?,如果在命令前加@,则该命令不会显示在cmd上4.1 rem
说明:批处理中的注释实例:rem cd /d d:/music
4.2 cd
说明:更改目录或显示当前目录实例:cd /d d:/music——/d跳转到指定目录下
cd \ ——退回到当前盘的根目录
cd .. ——退回到上一级目录
4.3
copy
说明:复制文件实例:copy d:/music/hello.mp3 d:——复制hello.mp3到D盘下
xcopy也是复制命令,但功能比copy多
4.4 dir
说明:显示目录下的文件和子目录实例:dir ——输出cmd的当前目录下的文件和子目录
4.5 del
说明:删除文件实例:del d:/music/hello.mp3——删除指定路径下的mp3文件
4.6 md
说明:创建文件夹实例:md file
——在cmd的当前目录下产生一个file名字的文件夹
4.7 rd
说明:删除文件夹实例:rd file
——在cmd的当前目录下删除file名字的文件夹
4.8 ping
说明:网络中的通信协议,网络是否连通实例:ping 127.0.0.1——本机回环地址,查明网卡是否可用
ping 127.0.0.1 –n 10> nul——发送10个ICMP的ECHO包,可以用作延时
4.9 telnet
说明:检测端口是否被占用实例:telnet 127.0.0.1 8080——检测8080端口是否被占用
4.10 echo
说明:显示信息实例:echo message echo——在cmd中显示message echo信息
echo on 与 echo off——echo on是把它下面的命令(如ping 127.0.0.1)显示在cmd中,echo
off不显示命令。如果在echo前加@,则不会显示echo on/off 命令
4.11 call
说明:调用另一个批处理,并且不终止父批处理实例:call d:/music/music.bat——调用D盘music文件夹下的music.bat批处理文件,执行完后再返回父批处理,也可以调用其他类型的可执行文件
4.12 start
说明:可以启动指定的命令或程序实例:start d:/music/music.bat——异步方式调用D盘music文件夹下的music.bat批处理文件,也可以是指定的可执行文件
4.13 set
说明:设置环境变量的值实例:set var=variable——设置环境变量var的值为variable,设置好后查看的方式是用echo命令,如echo
%var%即可得到环境变量var的值
4.14 goto
说明:跳转作用实例::label …….goto label——顺序执行语句,当执行到goto label时跳转到:label再次顺序执行。
4.15 taskkill
说明:关闭进程实例:taskkill /f /im notepad.exe——根据进程映像名来关闭进程
4.16
>、>>
说明:输出重定向命令,>与>>的区别在于>会清除原有文件,而>>只会在原有文件的基础上追加实例:echo hello world >> hello.txt——会在cmd的当前目录下生成hello.txt文件
大部分windows命令来源http://hi.baidu.com/hackerlinux/item/2d5a0dd51c2e8449fb5768dc
相关文章推荐
- lua脚本之lua语言简介以及lua的安装
- LUA脚本语言第二课(笔记)
- lua脚本语言学习
- 【COCOS2DX-LUA 脚本开发之一】LUA语言基础在Cocos2dX游戏中使用Lua脚本进行游戏开发(基础篇)并介绍脚本在游戏中详细用途
- VC开发lua嵌入脚本语言相关问题
- Go_NO1_Go语言的初步认识
- 在Java中使用Lua脚本语言
- Lua脚本语言——基本语法(一)
- 【COCOS2DX-LUA 脚本开发之二】LUA语言基础
- PHP-学习笔记—— 认识脚本语言; 动态网站开发所需的Web构件儿;
- WPF/Silverlight深度解决方案:(十一)与嵌入式脚本语言Lua & JavaScript的交互(下)
- 快速入门lua脚本语言
- Lua脚本语言参考一
- 脚本语言lua笔记(6)Lua调用c++自定义函数
- 如何在Java中使用Lua脚本语言
- Cocos2d-x 脚本语言Lua基本语法
- Lua 脚本语言 与 C的互相调用
- 【Lua】【1】Lua游戏脚本语言入门(转载)
- MoonScript 0.2.2 发布,基于 Lua 的脚本语言
- LoadRunner 脚本语言认识