【微软文档】Windows Commands
【易百教程】批处理教程

@:不显示当前命令

  1. @echo off

echo:表示显示此命令后的字符。

  1. C:\>echo 我在博客园
  2. 我在博客园

@echo off:此语句后所有运行的命令都不显示命令行本身

echo只有两种状态:打开和关闭。
执行echo off将关闭回显,它后面的所有命令都不显示命令本身,只显示执行后的结果,除非执行echo on命令。

  1. @echo off
  2. REM 将下面两行代码保存为test.bat文件
  3. IF "1" == "1" ECHO 我是好人
  4. PAUSE
  5. #打印:
  6. #我是好人
  7. #请按任意键继续. . .

call:调用另一个批处理文件

  1. call test2.bat

pause:暂时停止执行DOS命令,待用户键入任一字符才继续执行

::和rem:表示此命令后的字符为解释行(注释),不执行,只是给自己今后参考用的(相当于程序中的注释)。

  1. REM 调用同一目录下的另一个批处理文件test2.bat

if:判断条件

  1. IF "1" = "1" ECHO 相等
  2. IF NOT "1" = "1" ECHO 相等

if exist:判断是否存在

  1. IF exist c:\test.txt echo text.txt文件存在
  2. IF not exist c:\test.txt echo text.txt文件存在

if errorlevel:判断上一条命令执行状态

  1. @ECHO OFF
  2. XCOPY TEST.TXT S:\TEMP
  3. IF ERRORLEVEL 1 ECHO "Copy Failed"
  4. IF ERRORLEVEL 0 ECHO "Copy Succeed"

XCOPY:复制文件

  1. XCOPY TEST.TXT S:\TEMP
  2. # 0 成功拷贝文件
  3. # 1 未找到拷贝文件
  4. # 2 用户通过ctrl-c中止拷贝操作
  5. # 4 预置错误阻止文件拷贝操作
  6. # 5 拷贝过程中写盘错误

choice:给用户选择

  1. @echo off
  2. CHOICE /C YNC /M "确认请按 Y,否请按 N,或者取消请按 C。"
  3. PAUSE
  4. #打印:
  5. #确认请按 Y,否请按 N,或者取消请按 C。 [Y,N,C]?Y
  6. #请按任意键继续. . .

for :循环

  1. for %c in (*.txt) do type %c

%1~%9:输入参数

  1. @ECHO OFF
  2. IF EXIST %1 TYPE %1
  3. IF NOT EXIST %1 ECHO %1 does not exist

%~*:路径相关命令

  1. #规则如下:
  2. #%~(f|d|p|n|x|s|a|t|z|$PATH)*[0-9]
  3. cd %~dp0 #当前bat文件,带盘符的文件目录
  4. #示例命令:
  5. F:\Temp>Batch\test.bat "C:\Program Files\studying.txt"
  1. %~[0-9]:是指去除了引号的命令行参数

%~0指命令行本身,本例为Batch\test.bat
%~1指第一个参数,本例为C:\Program Files\studying.txt。以此类推。
注:%1也指第一个参数,本例却为“C:\Program Files\studying.txt”,这里是有引号的。

  1. %~f[0-9]:f - full,指绝对路径名

%~f0 - F:\Temp\Batch\test.bat
%~f1 - C:\Program Files\studying.txt

  1. %~d[0-9]:d - driver,指盘符

%~d0 - F:
%~d1 - C:

  1. %~p[0-9]:p - path,指不带盘符的目录名

%~p0 - \Temp\Batch\ 注:前后都有’\’
%~p1 - \Program Files\

  1. %~ n[0-9]:n - name,指文件的名字,注意不带扩展名

%~n0 - test
%~n1 - studying

  1. %~x[0-9]:x - extension,指文件的扩展名

%~x0 - .bat 注:前面有’.’
%~x1 - .txt

  1. %~s[0-9]:s - short,指带有DOS短名字(8字符)的绝对路径

%~s0 - F:\TEMP\BATCH\test.bat
%~s1 - C:\PROGRA~1\studying.txt
注:这里的目录名全是大写,而文件名全是小写

  1. %~a[0-9]:a - attribute,指文件的属性

%~a0 - —a———-
%~a1 - —a———-
注:这里每一位代表一种文件属性

  1. t:文件的修改日期
  2. z:文件的size
  3. %~$PATH:[0-9]:搜索PATH里面的目录,看是否能够找到命令行参数指定的文件。找到此文件,输出该文件的绝对路径;没有找到此文件,输出空字符串。

组合使用:上述的这些字符规则是可以组合起来使用的。例如,n和x组合表示带扩展名的文件名名字。

>、>>:输出重定向

会清除掉原有文件中的内容后把新的内容写入原文件,而>>只会另起一行追加新的内容到原文件中,而不会改动其中的原有内容。

  1. echo @echo off > a.bat
  2. echo echo This is a pipeline command example. >> a.bat

/?:查看命令的帮助

  1. cd /?