关闭

批处理中Dos符号作用大全

标签: dos扩展pathcshellwindows
564人阅读 评论(0) 收藏 举报
分类:

DOS命令方兴未艾,虽然有人觉得它过时,但其实在实际中,在WINDOWS大有作为。以下仅仅是批处理中Dos符号作用大全

@
//隐藏命令的回显。
~
//在for中表示使用增强的变量扩展;
在set中表示使用扩展环境变量指定位置的字符串;
在set/a中表示按位取反。
%
//使用两个%包含一个字符串表示引用环境变量。比如一个%time%可以扩展到当前的系统时间;%SystemRoot% 与 %windir% 都表示C:/WINDOWS,ProgramFiles表示C:/Program Files。你的命令可以这样写:
COPY choice.exe "%SystemRoot%/SYSTEM32"
比如  %PATH:~-10%  会提取 PATH 变量的最后十个字符。
单个%紧跟0-9的一个数字表示引用命令行参数;
用于for中表示引用循环变量;
连续的两个%表示执行时脱为一个%。
%CD% - 扩展到当前目录字符串。
%DATE% - 用跟 DATE 命令同样的格式扩展到当前日期。
%TIME% - 用跟 TIME 命令同样的格式扩展到当前时间。
%RANDOM% - 扩展到 0 和 32767 之间的任意十进制数字。
%ERRORLEVEL% - 扩展到当前 ERRORLEVEL 数值。
%CMDEXTVERSION% - 扩展到当前命令处理器扩展版本号。
%CMDCMDLINE% - 扩展到调用命令处理器的原始命令行。
set /? 可查看建立环境变量详细内容.
^
//取消转义字符,即将所有转义字符的转义作用关闭。比如要在屏幕显示一些特殊的字符,比如> >> | ^等时,就可以在其前面加一个^符号来显示这个^后面的字符了,^^就是显示一个^,^|就是显示一个|字符了;
在set/a中是按位异;
在findstr/r的[]中表示不匹配指定的字符集。
&
//命令连接字符。比如我要在一行文本上同时执行两个命令,就可以用&命令连接这两个命令;
在set/a中是按位与。
*
//代表任意个任意字符,就是我们通常所说的"通配符";比如想在c盘的根目录查找c盘根目录里所有的文本文件(.txt),那么就可以输入命令"dir c:/*.txt";
在set/a中是乘法。比如"set/a x=4*2",得到的结果是8;
在findstr/r中表示将前一个字符多次匹配。
()
//命令包含或者是具有优先权的界定符吧,比如for命令要用到这个(),我们还可以在if,echo等命令中见到它的身影;
-
//范围表示符,比如日期的查找,for命令里的tokens操作中就可以用到这个字符;
在findstr/r中连接两个字符表示匹配范围;
-跟在某些命令的/后表示取反向的开关。
+
//主要是在copy命令里面会用到它,表示将很多个文件合并为一个文件,就要用到这个+字符了;
在set/a中是加法。
|
//管道符。就是将上一个命令的输出,作为下一个命令的输入."dir /a/b | more"就可以逐屏的显示dir命令所输出的信息;
在set/a中是按位或;
在帮助文档中表示其前后两个开关、选项或参数是二选一的。
:
//标签定位符,可以接受goto命令所指向的标签。比如在批处理文件里面定义了一个":begin"标签,用"goto begin"命令就可以转到":begin"变迁后面来执行批处理命令了。

" "
//界定符,在表示带有空格的路径时常要用""来将路径括起来,在一些命令里面也需要" "符号;
在for/f中将表示它们包含的内容当作字符串分析;
在for/f "usebackq"表示它们包含的内容当作文件路径并分析其文件的内容;
在其它情况下表示其中的内容是一个完整的字符串,其中的>、>>、<、&、|、空格等不再转义。
/
//表示其后的字符(串)是命令的功能开关(选项)。比如"dir /s/b/a-d"表示"dir"命令指定的不同的参数;
在set/a中表示除法。
>
//命令重定向符,将其前面的命令的输出结果重新定向到其后面的设备中去,后面的设备中的内容被覆盖。比如可以用"dir > lxmxn.txt"将"dir"命令的结果输出到"lxmxn.txt"这个文本文件中去;
在findstr/r中表示匹配单词的右边界,需要配合转义字符/使用。
>>
//命令重定向符。将其前面的命令的输出结果重新定向到其后面的设备中去,后面设备中的内容没有被覆盖。
<
//将其后面的文件的内容作为其前面命令的输入。
在findstr/r中表示匹配单词的左边界,需要配合转义字符/使用。
=
//赋值符号,用于变量的赋值。比如"set a=windows"的意思意思是将"windows"这个字符串赋给变量"a";
在set/a中表示算术运算,比如"set /a x=5-6*5"。
/
//这个"/"符号在有的情况下,代表的是当前路径的根目录.比如当前目录在c:/windows/system32下,那么你"dir /"的话,就相当与"dir c:/"
在findstr/r中表示正则转义字符。

''
在for/f中表示将它们包含的内容当作命令行执行并分析其输出;
在for/f "usebackq"中表示将它们包含的字符串当作字符串分析。
.
//
在路径的/后紧跟或者单独出现时:
     一个.表示当前目录;
     两个.表示上一级目录;
在路径中的文件名中出现时:
     最后的一个.表示主文件名与扩展文件名的分隔。
&&
//连接两个命令,当&&前的命令成功时,才执行&&后的命令;

||
//连接两个命令,当||前的命令失败时,才执行||后的命令。
$
//在findstr命令里面表示一行的结束。
``
在for/f中表示它们所包含的内容当作命令行执行并分析它的输出。
[]
在帮助文档表示其中的开关、选项或参数是可选的;
在findstr/r中表示按其中指定的字符集匹配。
?
//在findstr/r中表示在此位置匹配一个任意字符;
?在路径中表示在此位置通配任意一个字符;
紧跟在/后表示获取命令的帮助文档。

!
//当启用变量延迟时,使用!!将变量名扩起来表示对变量值的引用;
在set /a中表示逻辑非。比如set /a a=!0,这时a就表示逻辑1。


2、 符号(>)
  >的意思是传递并覆盖。他所起的作用是将运行后的回显结果传递到后面的范围(后面可是文件也可是默认的系统控制台)例:
文件1.txt的文件内容为:
1+1
使用命令c:/>dir *.txt >1.txt
这时候1.txt的内容如下
驱动器 C 中的卷没有标签。
卷的序列号是 301A-1508
C:/ 的目录
2003-03-11 14:04 1,005 FRUNLOG.TXT
2003-04-04 16:38 18,598,494 log.txt
2003-04-04 17:02 5 1.txt
2003-03-12 11:43 0 aierrorlog.txt
2003-03-30 00:35 30,571 202.108.txt
5 个文件 18,630,070 字节
0 个目录 1,191,542,784 可用字节
>将命令执行的结果覆盖了原始的文件内容。
在传递给控制台的时候程序将不会有任何回显(注意:这里的回显跟echo off关掉的回显不是同一概念。Echo off关掉的是输入命令的回显,这里的回显是程序执行中或后的回显)例:
C:/>dir *.txt >nul
程序将没有任何显示也不会产生任何痕迹。
  3、 符号(>>)
  符号>>的作用与符号>相似,但他们的区别在于>>是传递并在文件末尾追加>>也可将回显传递给控制台(用法同上)例:
文件1.txt内同为:
1+1
使用命令c:/>dir *.txt >>1.txt
这时候1.txt的内容如下
1+1
驱动器 C 中的卷没有标签。
卷的序列号是 301A-1508
C:/ 的目录
2003-03-11 14:04 1,005 FRUNLOG.TXT
2003-04-04 16:38 18,598,494 log.txt
2003-04-04 17:02 5 1.txt
2003-03-12 11:43 0 aierrorlog.txt
2003-03-30 00:35 30,571 202.108.txt
5 个文件 18,630,070 字节
0 个目录 1,191,542,784 可用字节
>>将命令执行的结果覆加在了原始的文件内容后面。

  8、 符号(" ")
  " "符号允许在字符串中包含空格。进入一个特殊的目录可以用如下方法例:
c:/>cd “Program Files”
c:/>cd progra~1
c:/>cd pro*
  以上方法都可以进入Program Files目录
  9、 符号(,)
  ,符号相当于空格。在某些特殊的情况下可以用,来代替空格使用。例:
c:/>dir,c:/
  10、 符号(;)
  ;符号当命令相同的时候可以将不同的目标用;隔离开来但执行效果不变。如执行过程中发生错误则只返回错误报告但程序还是会继续执行。例:
DIR C:/;D:/;E:/F:/
以上的命令相当于
DIR C:/
DIR D:/
DIR E:/
DIR F:/






-----------------------------

附:DOS环境变量
TEMP变量
  TEMP是一个常用的环境变量,它告诉程序在何处建立临时文件,而有一些程序需要使用环境变量来识别它们要使用的目录。如下例:
  SET TEMP=C:/DOS
  在此例中,环境变量TEMP被DOS环境和一些其它程序使用,以确定当前文件子目录的位置。上面的目录C:/DOS被放入环境中,现在DOS系统知道把它们当前的文件放在哪里。在AUTOEXEC.BAT文件中,用户能够也应该设置环境的整个转换。
  一般在AUTOEXECBAT或CONFIGSYS文件中用SET命令设定用户环境,以便每次启动计算机时系统都能根据用户需要自动设置环境变量。一般%SystemRoot% 与 %windir% 都表示C:/WINDOWS,ProgramFiles表示C:/Program Files,除非安装系统选择了不同的文件夹。
  1.在批处理文件中调用环境变量
  从批处理文件中调用环境变量值时,必须用百分符(%)将变量值括起来。如设置名为WIN32的变量,使它等于字符串C:/Windows/SYSTEM(C盘中的目录),可键入以下命令:
  SET WIN32=C:/WINDOWS/SYSTEM
  在批处理文件中可用%WIN32%代替C:/WINDOWS/SYSTEM。在批处理文件中包括以下命令,显示C:/WINDOWS/SYSTEM环境变量的目录内容:
  DIR %WIN32%
  当MS-DOS处理该命令时,会用字符串C:/WINDOWS/SYSTEM代替%WIN32%。
  2.在批处理文件中保存和恢复原有环境下的路径
  对每一个批处理文件,用户都可以修改环境变量,而各个批处理文件需要不同的PATH指明路径,以执行批处理下的程序,这就需要用户保存原有环境下的路径。用户可在批处理文件中使用一个环境变量暂时存储用户原来的路径,以便在需要时可以恢复,而不需要重新用PATH命令来设置:
  SET OLDPATH=%PATH%
  例如某计算机的设置如下:
  SET OLDPATH=C:/WINDOWS;C:/; C:/DOS;C:/FOXPRO25; C:/UCDOS; C:/GYPC; C:/CCED;C:/HD; C:/SARP
  批处理文件解释程序把%PATH%变量扩展成用户的当前路径,故OLDPATH变量等于此路径。如果此时系统因使用其它批处理文件而打乱了原系统路径,可简单地在批处理文件中使用下列语句恢复路径的原貌,以满足用户对不同环境的需要。如下例:
  PATH %OLDPATH%
  计算机显示它的执行情况:
  PATH C:/WINDOWS;C:/;C:/DOS;C:/FOXPRO25;C:/UCDOS;C:/GYPC;C:/CCED;C:/HD;C:/SARP
  其实,很多用户都可能在各自的AUTOEXEC.BAT文件中存有“OLDPATH”变量,由于此环境变量总包含原有路径的备份,因此可以很容易地恢复原有路径。


COMSPEC变量
  这个变量规定了COMMAND.COM文件的位置。通常,如果计算机由硬盘驱动器引导 COMSPEC变量表示为:
  COMSPEC=C:/COMMAND.COM
  如果是从软盘驱动器引导的,则COMSPEC变量表示为:
  COMSPEC=A:/COMMAND.COM
  使用SET命令能改变COMSPEC的位置,格式为:
  SET COMSPEC=C:/DOS/COMMAND.COM
  此命令在系统环境中把COMSPEC重新设置成C盘DOS目录中的COMMAND.COM文件,因为COMMAND.COM不需要在用户的根目录中。用户也可以把COMMAND.COM放进其它子目录中,采用CONFIG.SYS的SHELL命令来完成这项工作。在计算机的启动过程中, CONFIG.SYS是在COMMAND.COM装入之前运行的,用SHELL命令通知DOS系统COMMAND.COM在另一个目录中,则系统到那个目录去找它。这有一个明显的优点,它保持了根目录的清洁。
  另外,为保证系统能正常运行,用户还需在CONFIGSYS文件中加上这样一句:
  SHELL=C:/DOS/COMMAND.COM /P [/E:1024]
  此命令指示DOS在C:/DOS子目录中寻找并运行命令解释程序或外壳程序COMMAND.COM。如果把此命令加到CONFIG.SYS文件中,可提前把COMMAND.COM移到DOS子目录中。P选项指示COMMAND.COM在根目录中寻找AUTOEXEC.BAT文件并且运行它,如果没有此选项,则根目录下的AUTOEXEC.BAT文件不能运行。
  当DOS系统没有更多的空间存储环境变量时,将会看到信息:
  Out of environment space(环境空间溢出)
  出现这种情况后,可利用SHELL命令加大COMMAND.COM的环境空间,可选项E:1024就是将环境空间扩大到1KB(1024字节)。

PROMPT变量
  这个环境变量显示用户所设置的命令提示符。DOS系统提示符一般设置为显示当前驱动器和路径后接一“>”符号,当然也可以设置为其它类型的命令提示符,这个变量一般在AUTOEXECBAT文件中设置,命令使用的一般格式为:
  PROMPT $p$g
  当然,你也可以使用SET PROMPT=$p$g。
  3.PATH变量
  这个环境变量包括用PATH命令设置路径,使DOS系统能在指定的目录中搜索可执行的文件。

DIRCMD变量
  这个环境变量让用户确定DIR命令缺省使用的开关和参数集。用户可在AUTOEXEC.BAT文件中或命令提示符下使用SET命令定义DIRCMD环境变量,预先设置DIR的参数和选项的合法组合(可包括路径和文件名)。
  例如,要把DIRCMD环境变量设置为满屏时暂停(/P)为缺省格式,在AUTOEXEC.BAT批处理文件或DOS命令提示符下键入:
  SET DIRCMD=/P
  这时使用DIR命令,在满一屏时将暂停并提示“按任意键继续”。
  若不想使用这个缺省格式,可在命令行上使用:
  DIR/-P

如何造访环境
  造访环境有两种方法,一种是通过SET命令来查看,另一种是使用DOS系统的DEBUG命令来查看计算机的RAM。SET命令直观、方便,大多数DOS用户都喜欢使用它来设置和查看DOS环境。
  1.用SET命令
  SET命令可用于设置、修改和查看环境变量,键入无参数的SET命令可显示当前环境设置。这些设置一般包括COMSPEC和PATH环境变量,MS-DOS用它们在磁盘上寻找程序。另外还有PROMPT、DIRCMD、COPYCMD等为DOS系统所使用的其它环境变量。这些环境变量大多在 AUTOEXEC.BAT或CONFIG.SYS文件中用SET命令设置而生成。如下例:
C:/>SET COMSPEC=C:/COMMAND.COM
PROMPT=$p$g
PATH=C:/WINDOWS;C:/;C:/DOS;C:/FOXPRO25;C:/UCDOS;C:/GYPC;C:/CCED;C:/HD;C:/SARP
TEMP=C:/DOS
  2.通过DEBUG命令
  DEBUG是DOS提供的调试程序的有力工具,利用它可以检验磁盘原始信息、查看内存单元、反汇编程序文件或生成新程序等等,然而DEBUG命令有一定的危险性,因此用户在使用过程中须注意。
  DOS系统每运行一个程序都要生成一个256字节的内存块——程序段前缀PSP(Program Segment Prefix),它包含了一些比较重要的信息,如内存单元、矢量、命令行上键入的文件名、命令行本身(用户运行程序的命令行的拷贝)、各种保留缓冲器存储地点的信息。只要涉及环境,那些存储地点之一就会保存系统环境地址。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:21235次
    • 积分:369
    • 等级:
    • 排名:千里之外
    • 原创:11篇
    • 转载:15篇
    • 译文:0篇
    • 评论:1条
    文章分类
    最新评论