学习要点:
1.>、>>重定向符
2.| 命令管道符
3.&、&&、|| 组合命令
4.^ 转义字符
5.% 变量引导符
6."" 界定符
—————————————————————————————————–
一、重定向符 >、>>
> 重定向符, 意思是传递并且覆盖,它所起的作用是将运行的结果传递到后面的范围(后边可以是文件,也可以是默认的系统控制台,即命令提示符)。
例1 echo hello120 >1.txt
新建立文件 1.txt,内容为"hello120" (注意:行尾有一空格,文件后有一空行)
例2 (echo hello120)>1.txt   新建立文件 1.txt,内容为"hello120" (注意:行尾无空格,但文件后有一空行)
>1.txt echo hello120      新建立文件 1.txt,内容为"hello120" (注意:行尾无空格,但文件后有一空行)
例3 >1.txt <nul set /p=hello120  或>1.txt set /p=hello120<nul
新建立文件 1.txt,内容为"hello120" (注意:行尾无空格,且文件后也无空行)
注意:如果上面的例子中1.txt原来有内容的话,在使用了> 重定向符命令后,将会被新的内容覆盖掉,这个一定要注意!
—————————————————————————————————–
>> 重定向符 将命令的输出结果追加到其后面的设备中去。这个符号的作用和>有点类似,但他们是有区别的 >>是传递并在文件的末尾追加,而>是覆盖。用法同>一样的。
例1 echo hello120 >>1.txt
如果1.txt不存在,则新建立文件 1.txt,内容为"hello120 ";如果1.txt存在,则把内容为"hello120 "追加到其文末尾。
例2 echo hello> 1.txt
echo world>>1.txt
这时候 1.txt内容如下:
hello
world
—————————————————————————————————–

二、命令管道符 |
表示把在它之前的命令或语句的执行结果作为在它之后的命令或语句的处理对象,简而言之,就是把它之前的输出作为它之后的输入。
例1 tasklist | find /i "qq.exe" && taskkill /f /im qq.exe
将tasklist(进程列表)用传递符"|" 传递给find 命令,执行查找QQ的进程。
例2 echo Y|rd /s c:\abc
通过管道命令|将echo y 的结果传给rd /s c:\abc 命令,从而达到自动输入y 的目的。
★注意,管道命令 | 的输入方法,shift键 \
—————————————————————————————————–

三、组合命令 &、&&、||
&、&&、|| 为组合命令,顾名思义,就是可以把多个命令组合起来当一个命令来执行。
&符号允许同时执行多条命令,当第一个命令执行失败了,也不影响后边的命令执行。这里 & 两边的命令是顺序执行的,从前往后执行。
格式:第一条命令 & 第二条命令 [& 第三条命令…]
例1 dir z:\ & dir y:\ & dir c:\ 以上命令会连续显示z,y,c 盘的内容,不理会该盘是否存在。
—————————————————————————————————–
&&符号允许同时执行多条命令,当碰到执行出错的命令后将不再执行后面的命令,如果一直没有出错则一直执行完所有命令。
格式:第一条命令 && 第二条命令 [&& 第三条命令…]
例2 dir z:\ && dir y:\ && dir c:\ 这个命令和上面的类似,但区别是,前一个命令执行失败时,后边的命令就不会再执行了。
—————————————————————————————————–
||符号允许同时执行多条命令,当一条命令执行失败后才执行第二条命令,当碰到执行正确的命令后将不执行后面的命令,如果没有出现正确的命令则一直执行完所有命令。
格式:第一条命令 || 第二条命令 [|| 第三条命令…]
例3 tasklist | find /i "qq.exe" && taskkill /f /im qq.exe || echo 你开了QQ?我不信
通过&&和||两个符号可以认为把上例分成了三个命令:
第一个命令::tasklist | find /i "qq.exe"
第二个命令:taskkill /f /im qq.exe
第三个命令:echo 你开了QQ?我不信
这里我们分析一下,
如果找不到QQ进程,即第一个命令执行失败,则 && 不会执行第二个命令:taskkill命令,由于taskkill 命令没有执行,视作第二个命令执行失败,则 || 将会执行第三个命令:echo 命令。
如果找到QQ进程,即第一个命令执行成功,则 && 将会执行第二个命令:taskkill命令,由于第二个命令执行成功,|| 将不会执行第三个命令:echo 命令。
—————————————————————————————————–
★管道命令 | | 的输入方法,输入两次shift键 \
★组合命令和重定向命令、管道命令一起使用必须注意优先级。管道命令的优先级高于重定向命令,重定向命令的优先级高于组合命令。
思考:
把C 盘和 D 盘的文件和文件夹列出到a.txt 文件中。
你可能马上的写出了下面的命令:
dir c:\ && dir d:\ > a.txt
这样执行后a.txt 里只有D盘的信息!为什么?因为组合命令的优先级没有重定向命令的优先级高!所以命令在执
行时将被分成两部分:dir c:\和dir d:\ > a.txt
这里要使用组合命令&&达到题目的要求,我们可以这样写:
dir c:\ > a.txt && dir d:\ >> a.txt
这样,依据优先级高低,DOS 将把这句话分成以下两部分:dir c:\ > a.txt 和dir d:\ >> a.txt
当然,我们也可以这样写:
dir c:\ > a.txt & dir d:\ >> a.txt
—————————————————————————————————–

四、转义字符 ^
一般而言,^ 以转义字符的身份出现。
   因为在cmd环境中,有些字符具备特殊功能,如 >、>>表示重定向,| 表示管道,&、&&、|| 表示语句连接……它
们都有特定的功能,如果需要把它们作为字符输出的话,echo >、echo | ……之类的写法就会出错——cmd解释器会
把它们作为具有特殊功能的字符对待,而不会作为普通字符处理,这个时候,就需要对这些特殊字符做转义处理:在
每个特殊字符前加上转义字符^。
因此,要输出这些特殊字符,就需要用 echo ^>、echo ^|、echo ^|^|、echo ^^……之类的格式来处理;
   另外,此转义字符还可以用作续行符号。
例1
@echo off
echo 这是^
一个^
句子
Pause
   为什么转义字符放在行尾可以起到续行符的作用呢?原因很简单,因为每行末尾还有一个看不见的符号,即回车
符,转义字符位于行尾时就让回车符失效了,从而起到了续行的作用。
—————————————————————————————————–

五、变量引导符 %
  ①当百分号成对出现,并且其间包含非特殊字符时,一般做变量引用处理,比如:%var%、%str%

例1
@echo off
set str=abc
echo 变量 str 的值是: %str%
pause
在屏幕上将显示这样的结果:
变量 str 的值是: abc
按任意键继续…
—————————————————————————————————–
  ②另外,百分号作为变量引用还有一种特殊形式,那就是对形式参数的引用,此时,单个百分号后面紧跟0~9这10个数字,如%0、%1、%2 。。。
%0      表示批处理文件本身,包括完整的路径和扩展名
%1至%9  表示第一个参数至第九个参数
例2
@echo off
if defined str goto next
set str=
set /p str=请把文件拉到本窗口后回车:
call "%~0" %str%
pause
:next
cls
echo 本批处理文件完整路径为:"%~0″
echo 拖到本窗口的文件完整路径为:"%~1″
goto :eof
—————————————————————————————————–
 ③出现在 set /a 语句中时,表示两数相除取余数,也就是所谓的模运算,它在命令行窗口和批处理文件中的写法略有差异:在命令行窗口中,只需要单个的%,在批处理文件中,需要连续两个百分号,写成%%。
例如:在命令行窗口中,运行 set /a num=4%2 ,则结果将显示0,因为4除以2的余数为0;如果保存为批处理文件,则此语句将略有改变:
例3
@echo off
set /a num=4%%2
echo 4除以2的余数为 %num%
pause
—————————————————————————————————–
④转义符号:如果要显示%本身时,需要在前面用%来转义。
例4
@echo off
echo 一个百分号:%%
echo 两个百分号:%%%%
echo 三个百分号:%%%%%%
pause
—————————————————————————————————–

六、界定符 ""
①在表示带有空格或特殊符号的路径时常要用""来将路径括起来。
例1
cd /d cd "d:\program files\^%*abc"
因为路径中带有空格和特殊符号,所以要用""将路径括起来。
—————————————————————————————————–
②表示其中的内容是一个完整的字符串。
例2
@echo off
set "var=abc 123"
echo %var%
pause
这里表示变量var的值为字符串"abc 123"。

[No0000A0]批处理命令学习之:常用的特殊符号的更多相关文章

  1. Windows批处理命令学习中遇到的坑--持续更新中

    再次拾起windows批处理命令,下边将一些遇到的小问题写出来,希望可以帮到大家 1.set命令:set主要的作用是为变量赋值,类似于编程语言中的var i = Value:但是在使用的过程中一定要注 ...

  2. windows批处理命令学习

    初入批处理的学习,发现运行window的系统命令会减少很多的劳动,很方便. 参考例子: http://www.jb51.net/article/41322.htm

  3. 批处理命令学习笔记——Start命令

    Start 命令 启动另一个窗口运行指定的程序或命令,所有的DOS命令和命令行程序都可以由start命令来调用. 语法:START ["title"] [/Dpath] [/I] ...

  4. Windows脚本\批处理命令学习笔记

    1.为新建变量赋值: set 变量=值 2.输出变量的值 echo %变量% 3.关闭批处理中命令行的显示(默认是显示命令行的) 在文件開始处增加:echo off 若需又一次显示:echo on 若 ...

  5. Linux命令学习

    Linux命令学习 Ubuntu常用快捷键 •Ctrl+Alt+T: 打开终端 •Ctrl+Shift+T: 新建标签页 •Tab: 终端中命令补全 •Alt+数字N: 终端中切换到第N个标签页 •↑ ...

  6. Windows批处理(cmd/bat)常用命令学习

    前言 批处理文件(batch file)包含一系列 DOS命令,通常用于自动执行重复性任务.用户只需双击批处理文件便可执行任务,而无需重复输入相同指令.编写批处理文件非常简单,但难点在于确保一切按顺序 ...

  7. 入门学习Linux常用必会命令实例详解

    Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作.文件存取.目录操作.进程管理.文件权限设定等.所以,在Linux系统上工作离不开使用系统提供的命令.要想真正理解Linux系统, ...

  8. Windows常用批处理命令 CMD BAT (CMD目录操作等dir)

    Windows常用批处理 CMD BAT CMD获取文件夹下所有文件的名称并打印(输出)到指定目录 dir C:\Users\\Desktop\png\*.*/s >c:\.txt //cmd ...

  9. Linux常用命令学习6---(vim的使用)

    先说说我,我使用了这么久的vim,但是完全没有将vim的功能完全利用到,无非就是使用了编辑(i).保存(:w).退出(:q).等简单的编辑,命令,以及NerdTree这一个插件,所以在这里需要重新学习 ...

随机推荐

  1. Objective-C runtime的常见应用

    用Objective-C等面向对象语言编程时,"对象"(object)就是"基本构造单元"(building block).开发者可以通过对象来存储并传递数据. ...

  2. SQL Tuning 基础概述01 - Autotrace的设定

    1.autotrace的设定 SQL> set autotrace Usage: SET AUTOT[RACE] {OFF | ON | TRACE[ONLY]} [EXP[LAIN]] [ST ...

  3. JavaScript易错知识点整理

    前言 本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一 ...

  4. ubuntu 入门

    ubuntu 系统设置不全sudo apt-get install ubuntu-desktop uget aria2:下载工具http://www.xitongzhijia.net/xtjc/201 ...

  5. 基于Metronic的Bootstrap开发框架经验总结(14)--条码和二维码的生成及打印处理

    在很多项目里面,对条形码和二维码的生成和打印也是一种很常见的操作,在Web项目里面,我们可以利用JS生成条形码和二维码的组件有很多.本文引入两个比较广泛使用的JS组件,用来处理条形码和二维码的生成处理 ...

  6. jQuery+CSS3文字跑马灯特效

    jQuery+CSS3文字跑马灯特效是一款将跑马灯背景制作为3D立方体效果,文字在上面移动时,就像是文字投影到墙壁上,在转角出会改变运动方向. 效果展示 http://hovertree.com/te ...

  7. MongoDB初识

    参考: MongoDB资料汇总专题:

  8. 如何写出安全的API接口(参数加密+超时处理+私钥验证+Https)- 续(附demo)

    上篇文章说到接口安全的设计思路,如果没有看到上篇博客,建议看完再来看这个. 通过园友们的讨论,以及我自己查了些资料,然后对接口安全做一个相对完善的总结,承诺给大家写个demo,今天一并放出. 对于安全 ...

  9. WCF实现事件通知相关应用技巧介绍

    WCF实现事件通知是一个比较容易掌握的知识点,不过在实现的过程中,我们还是需要注意一些事项,以保证功能的完善性. WCF中有一些方法的应用对于初学者来说还是比较容易应用.只要熟练的联系这些方法操作,一 ...

  10. struts2杂记(一)——使用doubleSelect

    一.前言 这段时间忙的要死,做项目,学框架,时间根本不够用,只能尽量抽出时间记录自己学过的东西. 1.1.doubleSelect 在之前学习中,我们使用过二级列表,相信很多人都理解其原理,在stru ...