最近工作中会碰到一些批处理命令的使用,记录如下:
1. 同时调用多个外部程序:在调用程序前添加start,更加详细的用法可使用help查询
2. 批处理中如果直接调用外部程序,后面的命令不会执行,如果想要继续执行后面的命令,在调用程序前添加call。
3. 如果多次调用某个程序,并且该程序每运行一次都会出现“按任意键继续”,这时可以在批处理文件的开头写上:
@echo off<nul 3>nul
4. 文件复制使用copy,文件夹复制使用xcopy
5. 关于for命令,看到一篇不错的文章链接:
[1] 批处理for命令使用指南
练习过程如下:
/l 的练习:
@echo off for /l %%i in (1,1,5) do md A_00%%i pause
执行后在文件夹下生成A_001-A_005的文件夹
/f 的练习:
@echo off :: /f参数可以显示文件内的内容 for /f %%i in (a.txt) do echo %%i echo. :: 没有/f参数,返回a.txt for %%i in (a.txt) do echo %%i echo. :: delims指定分隔符;tokens指定取第几列,默认取第一列 for /f "tokens=2 delims= " %%i in (a.txt) do echo %%i echo. :: 这里必须是%%j,因为i之后是j for /f "tokens=2,3 delims= " %%i in (a.txt) do echo %%i %%j echo. :: 通配符*取这一行的所有或者这一行剩余部分 for /f "tokens=* delims= " %%i in (a.txt) do echo %%i echo. :: 通配符*取这一行的所有或者这一行剩余部分 for /f "tokens=2,* delims= " %%i in (a.txt) do echo %%i %%j echo. :: skip忽略文件前几行 for /f "skip=2 tokens=2,* delims= " %%i in (a.txt) do echo %%i %%j pause
a.txt的内容:
第1行第1列 第1行第2列 第1行第3列 第2行第1列 第2行第2列 第2行第3列 第3行第1列 第3行第2列 第3行第3列
返回结果: