15.6.Bat脚本编写

15.6.Bat脚本编写

         Windows 10 BAT(批处理)脚本编写是一种用于自动化任务的命令行脚本方式。通过编写BAT脚本,你可以批量执行系统命令、文件操作、程序启动等任务。BAT脚本是一种基于Windows命令行解释器(CMD)的脚本文件,通常具有.bat扩展名。

15.6.1.基础概念

         批处理文件(BAT):是一种文本文件,可以包含一系列命令,通常用于自动化任务。

         命令提示符(CMD):Windows的命令行工具,执行批处理文件时,CMD会逐行解析文件中的命令。

15.6.2.基础语法

         命令:每行可以包含一个命令,如 direchocd 等。

         注释:使用 REM :: 来写注释。

REM 这是一个注释

:: 这是另一种注释

         执行命令:直接输入命令行内容,例如 echo Hello World,显示文本 "Hello World"

15.6.3.常见命令

         1)文件操作命令:

                  copy:复制文件

                  del:删除文件

                  move:移动文件

                  xcopy:复制文件夹及其内容

                  mkdir:创建目录

                  rmdir:删除目录

         2)系统命令:

                  echo:打印输出到命令行

                  cls:清屏

                  pause:暂停批处理,等待用户按键继续

                  exit:退出批处理脚本

         3)条件判断:

                  if:条件判断

                  else:条件不成立时执行的命令

         4)循环控制:

                  for:循环操作,适用于遍历文件或变量

15.6.4.变量

         环境变量:通过 %VARIABLE_NAME% 来引用系统环境变量,例如 %PATH%%USERPROFILE%

         自定义变量:通过 set 命令创建变量。例如:

set myVar=Hello

echo %myVar%

         用户输入:使用 set /p 命令获取用户输入。

set /p name=请输入你的名字:

echo 你好,%name%

15.6.5.流程控制

         条件判断:

if exist "file.txt" (

    echo 文件存在

) else (

    echo 文件不存在

)

         循环结构:

for %%i in (*.txt) do (

    echo %%i

)

         这个例子会循环打印当前目录下所有 .txt 文件的文件名。

15.6.6.错误处理

         使用 if errorlevel 来检查上一命令的返回值。

command

if errorlevel 1 (

    echo 错误发生

)

15.6.7.常用控制命令

         goto:跳转到指定标签位置。

goto :label

:label

echo 跳转成功!

         call:调用其他批处理文件或脚本。

call other_script.bat

         start:启动一个新的命令行窗口运行命令。

start notepad.exe

         timeout:暂停脚本运行一段时间。

timeout /t 10

         exit /b:退出当前脚本或子程序。

exit /b

15.6.8.文件与目录操作

         文件复制:

copy source.txt destination.txt

         文件删除:

del file.txt

         目录创建:

mkdir new_folder

         查找文件:

dir /s /b *.txt

15.6.9.批处理脚本调试

         开启命令回显:使用 echo on 开启回显,查看命令执行情况。默认是 echo off,即不显示命令。

         调试模式:使用 @echo off 来避免显示命令,仅显示输出结果。

15.6.10.高级技巧

         管道与重定向:

                  >:输出重定向

                  >>:追加输出

                  <:输入重定向

                  |:管道符,将一个命令的输出作为另一个命令的输入

dir > file_list.txt

         批处理函数:利用 call 和标签(label)定义类似函数的结构。

:hello

echo 你好,世界!

goto :eof

15.6.11.常见问题与优化

         1)批处理执行顺序:命令按顺序逐行执行,异步执行可以使用 start 命令。

         2)性能问题:避免不必要的循环和重复执行命令;尽量减少外部程序的调用。

         3)安全问题:避免批处理脚本中包含敏感信息(如密码),并确保脚本路径和文件名的安全。

15.6.12.示例

         下面是一个包含所有基本内容的示例BAT脚本。这个脚本演示了如何使用变量、文件操作、条件判断、循环、用户输入、错误处理以及其他常见命令。

@echo off

REM 这是一个示例BAT脚本,演示了基本的批处理语法和功能。

:: 设置环境变量

set myVar=Hello, World!

set /p userName=请输入你的名字:

:: 打印问候信息

echo %myVar%, %userName%

:: 创建目录并检查目录是否存在

set dirName=test_folder

if exist %dirName% (

    echo 目录 %dirName% 已经存在。

) else (

    echo 创建目录 %dirName%...

    mkdir %dirName%

)

:: 文件操作:复制、删除文件

echo 创建文件 hello.txt...

echo %userName% 的问候 > hello.txt

echo 文件 hello.txt 已创建,准备复制...

copy hello.txt %dirName%\hello_copy.txt

echo 文件复制完成。

:: 使用for循环遍历目录中的文件

echo 当前目录中的文件列表:

for %%f in (*.*) do (

    echo %%f

)

:: 错误处理:检查文件是否存在

if exist hello.txt (

    echo hello.txt 文件存在。

) else (

    echo 错误:hello.txt 文件不存在!

)

:: 等待用户输入继续

pause

:: 跳转到标签并执行

goto :start_script

:start_script

echo 脚本开始执行!

:: 使用timeout暂停5

timeout /t 5

:: 启动记事本

echo 启动记事本...

start notepad.exe

:: 删除文件和目录

echo 删除创建的文件和目录...

del hello.txt

del %dirName%\hello_copy.txt

rmdir /s /q %dirName%

:: 程序结束

echo 脚本执行完毕,退出。

exit /b

15.6.13.常见使用

         参考:附录E 常见Bat使用案例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

任风雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值