Windows批处理

学习Windows批处理命令是为了看懂Tomcat等服务器的启动文件,那些文件都是.bat,下一步学习tomcat的时候去解析这些命令

脚本之家

批处理命令查询的两种方式 :

1:在命令提示符中输入命令  /? 即可看到该命令的说明

2: 在windows中显示桌面 ctrl+d 按F1  在帮助信息中随便输入一个命令: call或者 echo 即可看到很多命令

3:微软官网的说明

学习参考

以下批处理脚本的下载

看了这篇文章就可以理解数据库导入导出脚本的命令的意义

1:何为批处理命令引用:

批处理文件是无格式的文本文件,它包含一条或多条命令。它的文件扩展名为 .bat 或 .cmd。在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们。


2:一些常用的命令:

首次看一个例子,认识一下批处理:

echo on
type helloWorld.txt
echo 现在关闭命令显示!!!
echo off
type helloWorld.txt
pause

echo on 是显示要执行的命令,如果echo off 不显示要执行的命令  type helloWorld.txt是打开helloWorld.txt的内容,并显示,

pause 表示暂停在那里。

以上语句执行方式 保存到 helloWorld.bat的形式。然后双击即可执行。


一个批处理程序:

@echo off
title 简单的批处理
cls
echo.------1.请输入数字1 并按回车,注销系统
echo.------2.请输入数字2 并按回车,重启系统
echo.------3.请输入数字3 并按回车,关闭系统
echo.------4.请输入其他字符,退出程序。
set num=
set /p num=请选择你要执行的操作
if "%num%"=="1"(
logoff
)
if "%num%"=="2"(
shutdown -r /t 000
)
if "%num%"=="3"(
shutdown -p
)
以上是一个批处理程序。可以单独见一个文本文件,然后把后缀变为bat
双击执行可以看到效果。


1:echo命令

echo 命令用于在屏幕显示相关的文字信息,该命令还可用于控制批处理文件
在执行过程中是否回显命令本身。


命令格式: echo [{on|off}] [message]
参数说明:
--on: 允许批处理文件在执行过程中回显命令。
--off:禁止批处理文件在执行的过程中回显命令。
--message: 表示需要显示在屏幕上的信息
--/?:在命令提示符中显示帮助 测试过


2:@命令

@:是一个非常简单的命令,它用于禁止当前执行的命令回显到屏幕上,
@ 不受 echo 命令设置效果的影响,且该命令本身不会回显在屏幕上。


命令格式: @[command]
参数说明;
--command  :要屏蔽回显的命令
--当命令不加任何参数执行的时候,将不产生任何效果


3:goto命令:

goto命令:
是一个流程控制转向命令,它用于控制批处理中的命令执行流程。
命令格式 :  goto label
参数说明:label表示批处理文件中的某行,
改行表示执行的新的开始点。

ex:

@echo off
echo .............
goto last
type helloWorld.txt
:last
dir helloWorld.txt
pause


4:pause命令

pause: 这个命令无需任何参数,当命令运行后,会中断执行的语句
命令格式: pause


@echo off
pause
echo 跳过中间命令
goto last
echo helloWorld.txt
:last
dir helloWorld.txts
pause


5:call命令

call : 是一个功能强大的回命令,它不但可以在批处理中调用另一个批处理
,而且还可以调用指定标号后面的所有命令。
命令格式: call [[Dirve:][Filename[BatchParameters]][:label[arguments]]

参数说明:[Dirve:][Filename[ 指定被调用的批处理文件名,当被调用的批处理
文件与已经执行的批处理文件都处于同一个目录时,可以省略盘符和路径。

:label 对于以":label" 开头的批处理程序,指定要传递给其新实例
的命令行信息,包括命令行选项、文件名、批处理参数或者变量。
--/?: 在命令提示符下显示帮助


@echo off
type helloWorld.txt
pause
@echo off
echo 正在调用call.bat
pause
call call.bat
echo called.bat调用完毕!
echo 现在开始调用 “xx”标号后的语句
call :xx

:xx
echo 在xx标号后的命令
pause

6:start命令

start : 用于重新启动一个单独的窗口,然后在新窗口中执行指定的
程序或命令


命令格式:  


START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
      [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
      [/NODE <NUMA node>] [/AFFINITY <hex affinity mask>] [/WAIT] [/B]
      [command/program] [parameters]


    "title"     在窗口标题栏中显示的标题。
    path        启动目录。
    B           启动应用程序,但不创建新窗口。应用程序已忽略 ^C 处理。
                除非应用程序启用 ^C 处理,否则 ^Break 是唯一可以中断
                该应用程序的方式。
    I           新的环境将是传递给 cmd.exe 的原始环境,而不是当前环境。


    MIN         以最小化方式启动窗口。
    MAX         以最大化方式启动窗口。
    SEPARATE    在单独的内存空间中启动 16 位 Windows 程序。
    SHARED      在共享内存空间中启动 16 位 Windows 程序。
    LOW         在 IDLE 优先级类中启动应用程序。
    NORMAL      在 NORMAL 优先级类中启动应用程序。
    HIGH        在 HIGH 优先级类中启动应用程序。
    REALTIME    在 REALTIME 优先级类中启动应用程序。
    ABOVENORMAL 在 ABOVENORMAL 优先级类中启动应用程序。
    BELOWNORMAL 在 BELOWNORMAL 优先级类中启动应用程序。
    
重点应用 /wait命令,然后观察  如果正常exit的时候有什么区别。
    
start 可以直接调用应用程序
call  命令不可以直接调用应用程序。

@echo off
echo 将在新的窗口中显示helloWorld.txt文件内容
start /wait type helloWorld.txt
pause

7:Rem命令

Rem : 是一个注释命令,它用于在批处理中加入相应的说明信息,
这些说明信息可以帮助阅读者理解批处理的功能。
命令格式: rem[comment]
参数说明:
 -comment: 指定要作为注释的任何字符串
 -/?显示帮助

@echo on
pause rem 这是对pause的解释
start helloWorld.bat
pause


8:set命令

set:专门用来创建、设置、查看或者删除环境变量。对于一些功能
复杂的批处理,自定义变量是不可缺少的。


C:\Users\topwqp>set /?
显示、设置或删除 cmd.exe 环境变量。


SET [variable=[string]]


  variable  指定环境变量名。
  string    指定要指派给变量的一系列字符串。


要显示当前环境变量,键入不带参数的 SET。


如果命令扩展被启用,SET 会如下改变:


可仅用一个变量激活 SET 命令,等号或值不显示所有前缀匹配
SET 命令已使用的名称的所有变量的值。例如:


    SET P


会显示所有以字母 P 打头的变量


如果在当前环境中找不到该变量名称,SET 命令将把 ERRORLEVEL
设置成 1。


SET 命令不允许变量名含有等号。

ex:

@echo off
:aaa    
rem 输入命令赋值给nnn 其中/p代表后面的输入命令
set /p nnn=请输入命令;
%nnn%  rem 执行刚才输入的命令
pause
goto aaa  rem 跳转到 :aaa的位置 相当于在 :aaa 到 goto aaa之间执行循环
set nnn= rem 把 nnn的值赋值为空


9:if命令

if命令: 非常重要的命令,它通过条件来决定
批处理应该如何执行,在制作复杂批处理时候很有用。


C:\Users\topwqp>if /?
执行批处理程序中的条件处理。


这个可以查看帮助, 

ex:

@echo off
echo ----1,请输入1 并按回车,注销系统
echo ----2,请输入2 并按回车,重启系统
echo ----3,请输入3 并按回车,关机系统
echo ----4,请输入4 并按回车,其他操作
set num=
set /p num=请选择你要执行的操作:
if "%num%"=="1"(
logoff
)

if "%num%"=="2"(
shutdown -r /t 000 rem 执行重启操作
)

if "%num%"=="3"(
shutdown -p  rem -p代表执行关机操作
)

else命令

@echo off
if exist helloWorld.txt ( echo 找到了helloWorld.txt文件,内容为:
type helloWorld.txt) else (
 echo "没有找到helloWorld.txt文件"
)
pause

10:for命令:

for命令: 是批处理一个强大,复杂命令,它可对一组不同的文件或
数据进行循环处理。
关于 <   >  >>的使用:
|管道符操作:


> 把内容添加到指定文件中,覆盖以前的文件
>>不覆盖以前的文件


@echo off
for %%x in (*.bat) do (
echo %%x的内容如下:
type %%x
)
pause

11:sort命令

sort 命令: 读取输入、排序数据并将结果写到屏幕上、文件和其他设备上
/?

12:find命令: 这个单独去查


输出到文件的批处理例子:

@echo off
set /p a=请输入ping的次数:
ping 127.0.0.1 -n %a% >>1.txt  rem 执行
pause
set a=


管道的使用的例子:

@echo off
find "1" 7.txt | sort >6.txt   rem 在5.txt中查找1的字符串,并将排序后的输出到6.txt
pause



注意事项:


在复杂的多名令的批处理汇总,要注意if语句。如果在一条
if语句中,有多条命令和多个变量的时候,则命令和变量需要
goto语句的引导! 否则if语句只会调用第一条命令和变量
顺便讲解:  title 和  cls的使用


重要:  如果想查找命令: 可以切换到桌面 ctrl + d
快捷键 F1 在输入框中随便输入一个命令 如 call 或者echo
可以看到很多命令。


关于注意事项的说明以下例子有问题的:

@echo off
set /p num=请输入要执行的操作:
if "%num%" == "1" (
set /p a=请输入内容:
set /p b=请输入文件名:
set /p c=请输入复制后的文件名:
echo %a% > %b%.txt
copy %b%.txt c:\%c%.txt
)
pause
set a=
set b=
set c= 
set num=

rem 这里有一个问题,如果if语句中有多个变量 只会赋值第一个,以后就不会赋值了。
rem 如果需要多次赋值引导,需要用goto语句引导;

修改利用goto和标签去引导为:

@echo off
set /p num= 请输入要执行的操作:
if "%num%" == "1" (
set /p a=请输入内容:
set /p b=请输入文件名:
set /p c=请输入复制后的文件名:
goto a
:a
echo %a% > %b%.txt
goto b
:b
copy %b%.txt  c:\%c%.txt
)
pause
set a=
set b=
set c= 
set num=





  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值