Windows batch文件学习笔记
运行程序
call
语法: call [ [Drive:] [Path] FileName [BatchParameters]][:label [arguments]]
参数: [Drive:][Path] FileName 指定要调用的批处理程序的位置和名称。Filename 参数必须是.bat 或 .cmd 扩展名的类型文件。BatchParameters 指定批处理程序所需的命令行信息(即参数项)。
调用另一个批处理程序,并且不终止父批处理程序(如果不用call而直接调用别的批处理文件,那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令)。
call 命令接受用作跳转目标的标签。如果在脚本或批处理文件外使用call,它将不会在命令行起作用。
@echo off echo 示例1 echo start call call1.bat echo running call2 echo end pause @echo off echo 示例2 call :label echo 1 echo 2 :label echo 3 echo 4
start
call的时候,他们拥有同一个壳cmd.exe,在同一个进程当中,所以他们的变量是互通的。
start的时候,他们拥有两个壳cmd.exe,但child.bat可以看成是main.bat的子进程,子进程可以读取父进程中的变量
使用方式可在cmd中查看:start/?
start 和 call 的不同
总结结论:
对于start,概况二句话:“不同进程不能传值”,“相同进程单向传值,老子传儿子,非儿子传老子”。
对于call,“同一进程,变量互通”。
echo的使用
Echo :显示当前ECHO的状态:ECHO ON 或者ECHO OFF 。
ECHO ON :ECHO状态设为ON,将显示命令行(如每行前的C:>等类似标志)。
ECHO OFF:CHO状态设为OFF,将不显示命令行(如每行前的C:>等类似标志) 。
ECHO 字符串 :将输入的字符串显示在CMD屏幕上。
ECHO 字符串 &ECHO 字符串 … :&,类似and的意思,逻辑运算,用来显示多行数据。
ECHO 字符串 > 文件路径和文件名:将字符串写入文件中,若已有数据将先清空后写入。
ECHO 字符串 >>