Dos命令从入门到忘记

538 阅读2分钟

@符号

该符号标示不显示修饰命令的内容,如下所示

使用@符号

@ ping www.baidu.com >>test@out.txt

运行脚本

并不显示任何输出。

不使用@符号

ping www.baidu.com >>test@out.txt

运行脚本

cmd终端中打印出了命令本身。

echo命令

echo 命令有以下几种用法

  • 回显开关
  • 打印
  • 编辑文本

回显开关

有两个状态,打开(on)、关闭(off),打开命令输出开关。示例代码如下:

echo on
dir >> on_dir.txt
echo off
dir >> off_dir.txt
dir >> off_dir2.txt
echo on 
dir >> on_dir2.txt

运行命令显示如下

打印

示例代码

echo hello

显示结果

编辑文本

如下所示代码

echo nbtstat -A 192.168.0.1 >a.bat
echo nbtstat -A 192.168.0.2 >>a.bat
echo nbtstat -A 192.168.0.3 >>a.bat

以上代码执行完毕后,在当前目录会生成一个a.bat的文件,双击可直接运行。

::注释符号

就类似于java地/*注释*/

pause 命令

直译过来就是暂停的意思,主要就会为了暂停一下,看一下输出信息。

goto:命令

这是两个命令,但是经常组合到一起用,:命令类似锚点,goto就是跳转到对应锚点。如下代码:

@ echo off
echo 请输入
set /p o= 
if "%o%"== "1" (goto p1) else (goto p2)


: p1
echo this is p1
goto end

: p2
echo this is p2
goto end

:end

运行脚本后,输入1就会打印this命令 is p1,输入2就会打印this is p2。 如图所示

注意: :不能和高级语言的方法修饰符混为一谈

%号作用

%号可以理解成取值,用法如下

@ echo off
set /p input=请输入姓名:
echo 你好%input%

运行脚本输入张三,显示如下

if的使用

基本使用语法如下

if 判断条件(
# 如果判断条件为true就走这里
)else(
# 如果判断条件为false就走这里
)

示例代码如下

@ ECHO OFF
SET/P INPUT=请输入您的年龄:
IF %INPUT% GTR 18 (
	ECHO 你成年了
) ELSE (
	ECHO 你未成年
)

其中的GTR表示大于。 示例代码运行结果如下:

扩展一下数字比较关键字

  • EQU 等于
  • NEQ 不等于
  • LSS 小于
  • LEQ 小于等于
  • GTR 大于
  • GEQ 大于等于

扩展一下其他比较关键字

  • EXIST 判断某个文件夹或文件是否存在
  • == 判断两个字符是否相等
  • NOT可以理解成取反,比如IF NOT 1==1,意思是1不等于1的。

CALL命令

调用其他bat脚本。例如有a.bat、b.bat、c.bat三个bat脚本。我想在c.bat中使用a.bat脚本,可以这样去调用,如下:

CALL a.bat

FOR命令

还不会