侧边栏壁纸
博主头像
张种恩的技术小栈博主等级

行动起来,活在当下

  • 累计撰写 748 篇文章
  • 累计创建 65 个标签
  • 累计收到 39 条评论

目 录CONTENT

文章目录

Dos 批处理简记

zze
zze
2020-12-01 / 0 评论 / 0 点赞 / 536 阅读 / 2700 字

不定期更新相关视频,抖音点击左上角加号后扫一扫右方侧边栏二维码关注我~正在更新《Shell其实很简单》系列

在 Windows 中,一个保存了 Dos 命令并以 .bat 作为文件扩展名的文本文件就可以称为批处理脚本,比如有 test1.bat 文件内容如下:

echo 1
echo 2
echo 3
pause

pause 命令可以阻止命令继续执行,以防止窗口一闪而过。。其执行效果如下:

image.png

可以看到其实就相当于我们顺序手动执行了多条命令。

屏蔽命令回显

可以通过 @echo off 屏蔽命令的回显而仅保存输出结果,在脚本头部添加上 @echo off 后脚本如下:

@echo off
echo 1
echo 2
echo 3
pause

执行效果如下:

image.png

从终端接收变量值

有时候我们的变量值需要用户交互指定,此时就可以通过下面语法来从终端接收变量值:

@echo off
set /p a=请输入第一个数:
set /p b=请输入第二个数:

set /a sum=%a%+%b%
echo 和:%sum%
pause

效果如下:

image.png

终端标题

从上面示例的输出中可以看到终端窗口的标题默认为 cmd 程序的路径 C:\WINDOWS\system32\cmd.exe,我们可以通过 title 命令手动指定这个标题,比如:

title zze-test
@echo off
echo hello zze
pause

效果如下:

image.png

重定向

Dos 和 Shell 类似也有重定向的概念:

  • 1>:标准输出重定向;
  • 2>:错误输出重定向;

并且 Dos 中有类似于 Linux 中 /dev/null 的文件,在 Dos 中为 nul,看下面示例:

@echo off
echo test line 1 1> nul
echo test line 2 
echo test line 3
:: test 目录不存在,将标准输出和错误输出都重定向到 nul
dir test 1> nul 2> nul
pause

效果如下:

image.png

条件判断

Dos 中的条件判断同样是使用 if/else 实现,看下面示例:

@echo off
set /p a=输入年龄:
if %a% geq 18 (echo 已成年) else (echo 未成年)
pause

效果如下:

image.png

goto

Dos 中的 goto 和 C 语言中的 goto 差不多,都是用来让代码跳转到指定位置,看下面示例:

@echo off
:a
set /p a=输入年龄:
if %a% geq 18 (echo 已成年) else (echo 未成年)
pause
goto a

效果如下:

image.png

可以看到这里使用 goto 间接实现了循环操作。

0

评论区