- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
bash和bat一些常用编写区别
Bash与Bat的一些编写区别
---求同存异,加深记忆
基本命令的使用
A.日常维护环境中,大家对类Unix环境投入的精力一般大于对Windos系统投入的精力。的确类Unix环境的学习,能让大家有一种真正在干技术活的感觉,不过对于游戏运维而言Windows系统的学习与研究同样也很重要。那么,现在就有这样一个想法摆在眼前,要是windows系统能用linux的命令,那就太好了,这样既能巩固类unix系统命令学习的成果,也能很好的完成windows系统的运维。是的,已经有人用实际行动做出了这样的windows外部命令用来完成类unix系统的系统命令和一般命令。这样我们就可以在windows系统中,使用linux命令了,呵呵。
B.Ok,废话不多说,直接告诉大家如何配置windows外部命令。当然首先你要有一个外部命令集,这个可以在网上有哪些信誉好的足球投注网站下载。我这里用的是王哥给的。内部是一些linux内系统命令或一般命令对应的exe windows可执行程序,截图如下:
C.windows系统使用外部命令,据我所知,有两种方法。一种是直接把这些可执行程序放到 %windir%\WINDOWS\system32\ 下,不过有一些外部命令,需要一些动态链接库dll的支持,所以要拷贝关于此全部外部命令的相关信息到 %windir%\WINDOWS\system32\ 下。因为我感觉这样做,还是比较麻烦,所以我建议使用下面一种方法能让windows系统自动寻址到外部命令。第二种方法,桌面右键“我的电脑”--属性--高级选项卡--环境变量按钮--编辑PATH,添加init.7z的解压路径。例如我把init.7z解压到了D:\init\ 所以,我在PATH中添加了:
D.好了,就这两步,windows系统就能使用外部命令了,怎么样很easy吧,呵呵。在运行框输入cmd,打开命令编辑窗口,试一下init中的外部命令吧 O(∩_∩)O~
Bash与Bat内部逻辑的区别
if的区别
Bash中if条件判断的语法使用方法种类很多,组合方法也很多,可以使用 || 进行各种表达式的组合,这里就不叙述了。着重说一下bat的if条件判断的使用,bat毕竟编程能力有限,所以bat默认只支持三种if的使用方法,一个是利用命令执行完的返回码,bash中是$?,windows中是ERRORLEVEL,第二是利用==判别字符串,第三个是使用exist判断文件或者文件夹是否存在。以下是windows中对if的说明:
For的区别
Bash中的for循环,语法也是多种多样的,我最常用的是C++的for语法:for((i=0;i$num;i++))。常用的还有for i in `命令` 呵呵。Bat中的for只有一种语法:
不过,别看bat的for语法设计的这么简单,但是你要是仔细挖掘它的话,也能发现它虽然不能像bash那样完成那么多的功能,但对付一般的windows批处理还是能胜任的。下面我会说一下,我对for的理解。
对for的理解
Bash中我很喜欢用while加数组,读取脚本外的配置文件。很遗憾,bat中使用不了while,不过我想了一种方法通过使用for /f tokens= delims= %%I in (文件) do command 提取“文件”中指定的每行中一delims作为分隔符的第几个tokens字段 然后将它通过echo输出重定向到另外的tmp文件中,作为中间件使用。哈哈。
Bat中的goto与程序模块
Bat中提供了子程序功能,你可以通过声明 :programe 来定义子程序,再通过goto来实现bat内部跳转。不过我发现个问题,比如你是这样编辑的:
:programe1
Command ...
:programe2
Command ...
如果你通过goto跳转到programe1,而且不希望programe1中有exit退出的话,那这样就会出现一个问题。当你使用goto跳转的时候,bat会不光把programe1子程序执行完毕,同样也会把programe2也执行了,真囧。所以如果子程序不是本bat最后面一个子程序的话,写子程序要考虑清楚。
文档评论(0)