zjffun blog

Windows - 批处理

更新于 写于

%0 到 %9

  • %i : 提取第 i 个命令选项,例如 %1 提取第 1 个 option,i 可以取值从 1 到 9
  • %~0 : 取文件名(名 + 扩展名)
  • %~f0:取全路径
  • %~d0:取驱动器名
  • %~p0:只取路径(不包驱动器)
  • %~n0:只取文件名
  • %~x0:只取文件扩展名
  • %~s0:取缩写全路径名
  • %~a0:取文件属性
  • %~t0:取文件创建时间
  • %~z0:取文件大小
  • (以上选项可以组合起来使用,~ 表示删除参数外面的引号)

eg:

  1. test.bat "test"
    %1:"test"
    %~1:test(没有了双引号)

  2. bat 文件在 e:/mybat/test.bat
    %0:e:/mybat/test.bat
    %~dp0:e:/mybat/

获取批处理文件所在路径

cd /d %~dp0 %0 是批处理文件本身的路径,~dp 进行扩展

回显

  • @echo off执行以后,后面所有的命令均不显示,包括本条命令。
  • echo off执行以后,后面所有的命令均不显示,但本条命令是显示的。

注释

  1. :: 注释内容(第一个冒号后也可以跟任何一个非字母数字的字符)
  2. rem 注释内容(不能出现重定向符号和管道符号)
  3. echo 注释内容(不能出现重定向符号和管道符号)〉nul
  4. if not exist nul 注释内容(不能出现重定向符号和管道符号)
  5. : 注释内容(注释文本不能与已有标签重名)
  6. % 注释内容 %(可以用作行间注释,不能出现重定向符号和管道符号)
  7. goto 标签 注释内容(可以用作说明 goto 的条件和执行内容)
  8. : 标签 注释内容(可以用作标签下方段的执行内容)

不自动关闭窗口

使用 pause

@echo off
echo hello world
pause