Bat批处理脚本程序<一> 基础

原创

由于自身原因,最近半年都在家带孩子,很久没写博客了,最近在家兼职的工作需要拷贝来拷贝去,突发兴趣,想研究一下批处理,感觉有时候用起来真的很方便。
直接新建一个文本,把后缀改成.bat 就建成了一个批处理程序,然后再用文本打开编写,找了一下发现iBat这个软件来编辑很不错,很傻瓜很方便,不会命令都能写批处理。
学习目标:能看懂Bat文件,修改文件。



DOS批处理命令是脚本语言,都是按照自上而下的流程逐行执行的,也就是说,只有第一行的命令执行了之后,才可能执行第二行,第二行执行完之后,再执行第三行。


【基础】   
echo   off      //关闭回显,一般写在批处理开头,表示只显示命令结果,不显示执行的命令,如果前面加@,@echo  off,那么这条命令本身也不显示
echo   on     //和上面相反
echo.           //后面紧跟一个小数点,显示一条空行
echo            //空格后跟文字,显示文字
 
rem             //注释,开启回显的话会显示注释的内容
::                 //注释,完全注释不显示回显  
cd c:\           //跳转到C盘 
/?                //命令后接/?会提示用法和参数 比如 choice/?
>nul            //命令最后接,不显示结果和提示
pause         //暂停,显示请按任意键继续,pause>nul不显示文字
ping            //后面跟IP,显示延迟 
title 标题     //窗口标题栏命名
color 0A      //文字绿色底黑色
exit             //退出批处理程序,并且退出CMD控制台
cls               //清理屏幕
errorlevel    //内置错误级别变量  0没有错误 其他值错误
%0             //脚本自身

start   /max "" "D:\cloudmusic.exe"                //以最大窗口运行程序
echo  文字>c:\测试.txt(文字>>c:\测试.txt) // 创建txt文本    >是存在文件就覆盖 >>是存在就累加写入

【文件夹】
md (mkdir)   c:\文件夹                   //创建文件夹  (..\文件夹  //创建到批处理文件所在的上级目录中)
ren (rename)  c:\文件夹  新名字    //重命名文件夹
rd (redir)   /s /q c:\文件夹               //删除文件夹(  /s 删除子目录和文件 /q 不询问 )
xcopy   /e /y c:\文件夹 D:\文件夹\  //复制文件夹( /e 复制所有子目录,包括空目录。/y 覆盖文件 )
copy                                               //复制文件夹

del                                                  //删除文件    (del 0% 删除自身)


【set】

%变量名%   //%%相当于变量引用,比如echo %time% 输出当前时间

set /p aaa=请输入数字:   //提示用户输入,并把值赋给aaa
set /a bbb=%aaa%*2        //执行数学运算,bbb等于aaa*2


【goto】
goto a    //goto 跳转命令 a 标签名 指定跳转到标签位置继续执行脚本
:a        //定义标签
echo 你是用goto命令来到标签a
 
goto :eof  (内置的End Of File,来到程序的最后一行,相当于退出当前Bat脚本,但是不退出CMD控制台会等候下一条命令)


【if】
注意:没有else if的写法
if exists c:\学习.txt (echo 存在) ELSE (echo 不存在)  //是否存在
if not exists c:\学习.txt (echo 不存在) ELSE (echo 存在) //是否不存在


【& && ||  |】
&  复合语句连接符,分隔一个命令行中的多个命令
&& 复合语句连接符,在 && 前的命令成功时,才执行 && 后面的命令。
|| 复合语句连接符,在 || 前的命令失败时,才执行 || 后面的命令。
|  管道符号,将|前的进程输出,当做|后进程的输入。


【延迟执行】
1.因为ping 命令是一秒执行一次 -n 代表的次数 127.1是本地网络系统回环地址127.0.0.1简写 >nul不显示ping的结果   这样就实现了延迟5秒执行

ping 127.1>nul -n 5  

2.choice /t 暂停秒数 /d 到时间后选择的选项 /n 隐藏选项列表 >nul不显示结果
choice /t 5 /d y /n >nul


例子:

@echo off
rem 这是一行注释,开启回显会显示
:: 这也是一行注释,开启回显也不显示
echo.
echo 现在开始Bat基础学习
echo.

title Bat基础学习
color 0A

pause 

:StartStudy
::清理屏幕
cls
echo.
echo  0.关闭Bat
echo  1.当前时间
echo  2.打开网易云音乐
echo  3.测试延迟
echo  4.创建txt文本
echo  5.文件夹操作

echo.
set /p choice=请选择练习的内容:

if %choice%==0 goto end
if %choice%==1 goto a
if %choice%==2 goto b
if %choice%==3 goto c
if %choice%==4 goto d
if %choice%==5 goto e

rem 0.关闭Bat
:end
exit

rem 1.当前时间
::表示从左向右指针向右偏0位,然后从指针偏移到的位置开始提取8位字符
:a
echo.
echo 当前时间是: %date% %time:~0,8% 
echo.
pause
goto StartStudy

rem 2.打开网易云音乐
::需要修改路径
:b 
echo.
start   /max "" "D:\软件\CloudMusic\cloudmusic.exe"
echo.
pause
goto StartStudy

rem 3.测试延迟
:: 出现错误再次输入IP
:c
set /p ip=请输入要ping的IP:
ping %ip%

if not %errorlevel% == 0 (
   echo.
   echo Ping对方的IP出现错误
   goto a
)
echo.
pause
goto StartStudy

rem 4.创建txt文本
:d 
echo.
set /p txtPath=请输入要创建的文本路径: 
set /p txtName=请输入要创建的文本名:
set /p txtContent=请输入文本内容:
echo.
echo %txtContent% >> %txtPath%/%txtName%.txt  &&  echo 创建成功! || echo 创建失败!

echo.
pause
goto StartStudy

rem 5.文件夹操作
::需要修改路径
:e 
::创建文件夹
echo.
echo 开始创建文件夹 

if not exist F:\我的文件夹 (
md  F:\我的文件夹 &&  echo F:\我的文件夹 创建成功! || echo 创建失败!
)else (
 echo 已经存在 F:\我的文件夹,不需要创建!
)
echo.

::延迟3秒 重命名文件夹
echo 按下任意键,将在3秒后把 我的文件夹 改名为 我的改名文件夹
pause>nul
ping 127.0.0.1>nul -n 3 
ren F:\我的文件夹 我的改名文件夹 && echo 改名成功! || echo 改名失败!

::延迟3秒 复制文件夹 /e 复制所有子目录,包括空目录。/y 覆盖文件
echo 按下任意键,将在3秒后把 我的改名文件夹 复制到 D盘 下
pause>nul
choice /t 3 /d y /n >nul
xcopy "F:\我的改名文件夹" "D:\我的改名文件夹\" /e /y && echo D:\改名后的文件夹 复制成功! || echo 复制失败!

::延迟3秒 删除文件夹 /s 是否删除子目录 /q 是否询问
echo 按下任意键,将在3秒后删除创建的文件夹
pause>nul
ping 127.0.0.1>nul -n 3
rd /s /q D:\我的改名文件夹 && rd /s /q F:\我的改名文件夹  && rd /s /q F:\我的文件夹 &&  echo 删除成功! 

echo.
pause
goto StartStudy

脚本下载:

http://download.csdn.net/download/u012322710/10190451


猜你喜欢

转载自blog.csdn.net/u012322710/article/details/78924578