[学习笔记]Windows CMD/bat |
您所在的位置:网站首页 › 中国十大疑似穿越者是谁 › [学习笔记]Windows CMD/bat |
基础知识
命令帮助的符号解释
NotationDescriptionText without brackets or braces必须要输入的命令必须要提供值的占位符[Text inside square brackets]可选项{Text inside braces}必选项集合,必选其中一项Vertical bar (|)互斥项分隔符,必选其中一项Ellipsis (…)重复使用项
特殊字符的意义与作用
@ @其后接一条命令,在批处理中,以@作为前缀的命令不会回显
@ipconfig
在.bat和.cmd 文件中体现,当然一般批处理文件第一行 @echo off就会预先关闭所有命令的回显。 %变量引用: echo %windir%只有当%%中间为已定义的临时变量或全局(系统)变量时才会作为变量引用符号,否者在echo命令中将视作普通字串。 取模运算: 在set命令中启用\a选项将开启表达式选项 注意在命令行中单个%即可,在批处理中需要两个自身转义,即%% 这里输出num的值为16的原因是该批处理未获得第五个参数,即空,故输出16,通过控制台调用传参示例: 这是变量引用一种特殊形式,%0表示批处理文件本身,1~9表示接收的参数索引。 转义%: 在批处理文件中转义本身,命令行中echo均视作普通字符 直接跳过second而跳转到third执行。 环境变量替换已如下增强: %PATH:str1=str2% 会扩展 PATH 环境变量,用 “str2” 代替扩展结果中的每个 “str1”。 要有效地从扩展结果中删除所有的 “str1”,“str2” 可以是空的。 “str1” 可以以星号打头;在这种情况下,“str1” 会从扩展结果的 开始到 str1 剩余部分第一次出现的地方,都一直保持相配。 也可以为扩展名指定子字符串。 %PATH:~10,5% 会扩展 PATH 环境变量,然后只使用在扩展结果中从第 11 个(偏 移量 10)字符开始的五个字符。如果没有指定长度,则采用默认 值,即变量数值的余数。如果两个数字(偏移量和长度)都是负数, 使用的数字则是环境变量数值长度加上指定的偏移量或长度。 %PATH:~-10% 会提取 PATH 变量的最后十个字符。 %PATH:~0,-2% 会提取 PATH 变量的所有字符,除了最后两个。 :: 该符号在批处理中为注释符,类似于rem,但有的特殊字符(重定向符号和管道符号)在rem中仍会执行,而所有:: 后的语句都将被解释器忽略,且::在大量语句中显然比rem更加醒目,因此推荐使用::注释。 ~ set语句: 参考set命令帮助中使用~的部分 for语句: 参考for命令帮助中的命令增强部分 > 重定向符号,当将输出内容重定向到文件时,>表示覆盖输出到文件,>>表示追加输出到文件。 重定向 1为标准输出stdout、2为标准错误stderr。系统默认%值是1,也就是1>,而1>可以简写为>,也就是标准输出默认为>。stdout的默认目标是终端,stderr的默认目标为也是终端。 句柄数字代号描述STDIN0键盘输入STDOUT1输出到命令提示符窗口STDERR2错误输出到命令提示符窗口UNDEFINED3-9句柄由应用程序单独定义,由各工具特有重定向到其它句柄通过&连接句柄代号 #将标准错误重定向到标准输出 2>&1利用管道符|实现将标准输出重定向到下一个命令的标准输入 tasklist | findstr "explorer"示例表示将tasklist命令执行的结果作为findstr命令的输入,即在其结果中查找explorer进程。 nul #打印变量(开启延时变量的情况下将%替换为!) echo %var% 延迟变量扩充 %var%相当于宏变量直接将值换到命令中,然后执行。!var!则是普通变量,每次可以直接读取内存中的值。 # 开启扩充 setlocal ENABLEDELAYEDEXPANSION #关闭扩充 setlocal DISABLEDELAYEDEXPANSION for语句单行分割迭代文本处理 set string=%str% :split for /f "tokens=1,* delims=;" %%i in ("%string%") do ( echo %%i set string=%%j ) if not "%string%"=="" goto split pause |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |