Window基本命令学习(二)
来源:互联网 发布:新乡医学院教务网络 编辑:程序博客网 时间:2024/06/05 18:37
标准输入、输出及错误日志的重定向
要想学号Windows的命令行,重定向必须要熟练掌握。主要的重定向技术如下:
标准输出重定向到其他命令
管道技术也是对应Windows命令行非常有用的,比如: command1 | command2
这里通过管道(|),command1的输出被重定向到command2的输入啦!
命令链与分组
当然,为了执行稍微复杂点的命令,必须有命令链与分组的知识:
变量
对于一个任何一个语言的学习,变量都是必不可少的。Windows脚本语言通过set variable_name=variable_value
来设置变量。使用变量可以用两个%
将变量加在中间,比如命令:cd %SystemRoot%\System32
就是进入变量SystemRoot
对应值的System32
路径下。当然,还需要了解变量的作用范围。不像C++、Java
这类语言可以使用{}
限制变量的作用范围,Windows脚本需要使用setlocal
和endlocal
命令限制变量的范围,如下面的例子:
rem ************************rem Script: localVariable.batrem Creation Data: 2016-7-25rem Last Modified: 2016-7-25rem Author: XiaoDong Wangrem Email: 347916416@qq.comrem ************************rem Description: Test the local variablerem ************************rem Files: Stores output nonerem ************************@echo offset sysCount=0set deviceCount=0rem Start localizationsetlocalset sysCount=2set deviceCount=2echo Local count: %sysCount% system edits ^& %deviceCount% dev ice checkendlocalecho Local count: %sysCount% system edits ^& %deviceCount% dev ice check
得到的结果是:
Local count: 2 system edits & 2 dev ice checkLocal count: 0 system edits & 0 dev ice check
可以看出,嵌套层局部变量不会影响到上一层的变量。
条件表达式
有了变量基础,就可以学习条件表达式了,主要的条件表达式如下:
if condition (statement1) [else (statement2)]----如果condition成立,则执行statement1,否则执行statement2if condition (statement)----如果condition成立,则执行statementif not condition (statement1) [else (statement2)]----如果condition不成立,则执行statement1,否则执行statement2if not condition (statement)----如果condition不成立,则执行statementif defined variable (statement)----如果定义了变量variable,则执行statementif not defined variable (statement)----如果没有定义变量variable,则执行statement
上面的用法很好理解,这几种用法所见即所得。关键要知道嵌套条件的表达方式,这点和其他语言有点不同,嵌套的if语句前面要加上@
。如下例:
if %1=="1" (@if "%2==2" (hostname & ver) else (ver)) else (hostname & netstat -a)
命令行迭代语句
有了if,当然少不了for啦。最基本的for语句是: for iterator do (statement)
这里的iterator用来控制for循环的执行,使用时应注意以下几点:
- iterator变量之存在于for循环的上下文中
- iterator变量名必须在a~z或者A~Z的范围内,比如%%A、%%b、%%C
- iterator变量名大小写敏感,即:%%A与%%a不同
for语句不同的结构有不同的用途,具体规则如下表:
注意:在脚本中使用两个%,命令行中输入则只需要一个%(下面的例子都是在命令行输入,则只使用了一个%)
- 例如测试遍历一些列值的操作可以直接可以在命令行中这样输入: for /l %a in (0,2,10) do echo %a
则输出:
0246810
- 测试目录集合的操作可以直接可以在命令行中这样输入:
for /d %a in (c:\*) do echo %a
则输出:
c:\Driversc:\Intelc:\KuGouc:\PerfLogsc:\Program Filesc:\Program Files (x86)c:\scriptc:\SysWOW64c:\Usersc:\Windows
- 在处理子目录文件的例子需要解释一下:
for /r [path] %%variable in (fileSet) do statement
里面的[path]
设定的是目录起点,比如C:\,不写则默认为当前目录比如要列出C盘中的所有的文本文件则可以在命令行中输入:for /r C:\ %a in (*.txt) do echo %a
这个结果很长,你可以自己试试
- Window基本命令学习(二)
- Window基本命令学习(一)
- Window基本命令学习(三)
- Linux学习------基本命令(二)
- Linux基本命令学习(二)
- Linux基本命令学习 《二》
- Django学习(二)(基本命令)
- window 基本命令
- 视图学习(二) window
- Emacs学习路线图(二)----之基本命令篇
- 『Linux学习』基本命令篇(二)
- git学习二(基本命令,commit、rm、log)
- HBase学习(二) HBase Shell 操作基本命令
- Linux学习之路-基本命令(二)
- NoSQL学习二:MongoDB基本管理命令
- NoSQL学习二:MongoDB基本管理命令
- MEMCACHED学习二、基本操作命令stats
- 【Linux学习笔记二】Shell基本命令
- css伸缩布局盒flex属性 display:flex 详解
- 详解Android中AsyncTask的使用
- java常用设计模式
- python学习——编写配置文件
- 欢迎使用CSDN-markdown编辑器
- Window基本命令学习(二)
- 重新组织函数(重构手法二)
- cordova+ionic配置
- 关于实现udev/mdev自动挂载与卸载
- 个人记录之类的东西 笑
- Java对象的内存布局以及对象所需内存大小计算详解
- 【OOP】从 C++, Java 迁移到 JavaScript
- 爸爸给女儿们做的智能机器人朋友——瓦力三号
- Window基本命令学习(三)