打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
bat语法和例子

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://cjbskysea.blogbus.com/logs/33697954.html

.bat 和.cmd一样,只是环境不一样罢了,只要文件名不是cmd就可以。

rem 注释,这种注释是可以显示在命令行上的。

:: 注释 这种是代码注释

call 用于在一个bat中调用另一个bat

:linename 用于定义行名,主要用于 goto linename

>     执行生成文件,若不存在则创建,存在则覆盖

>>  把结果从定向到文件,若文件已经存在则在末尾追加,不存在则创建。

| 和>&   前个命令的输出作为后面命令的输入。

set varname="value" 给变量varname赋值为value,调用%varname%

@echo off 关闭回显示

echo 内容  用于在命令行窗口显示“内容”

pause&exit  用于停止和用户输入任意字符关闭窗口

%0 批处理自身文件名

%1 第一个参数, %2类似

下面使一些简单例子:

(1)查看本机是否开放8081端口

@echo off
netstat -a -n > a.txt
type a.txt | find "8081" && echo "开放了8081"
del a.txt
pause & exit

(2)清除垃圾

@echo off
if exist c:\windows\temp\*.* del c:\windows\temp\*.*
if exist c:\windows\Tempor~1\*.* del c:\windows\Tempor~1\*.*
if exist c:\windows\History\*.* del c:\windows\History\*.*
if exist c:\windows\recent\*.* del c:\windows\recent\*.*

pause & exit

(3)进度条

脚本内容:

引用:
@echo off
title 脚本测试
rem 说明:
rem 变量b为平均值的整数部分,变量c为平均值的小数部分,变量hs表示需要执行的命令总数并加1,防止程序进入死锁.
rem 如果没有小数部分,请把变量c赋零值
rem 变量pjump默认为1表示在编辑note.txt文件时第一行必须为空.
color 0a
set b=1
set c=0
set /a hs=81
set pjump=1
set a=■
set /a zs=%b%
set /a g=%c%
rem 上面这部分没什么解释的,是主要变量的相关说明,及赋值。

:pstart
rem 进度条代码开始
cls
set a=%a%■
echo.
echo 程序正在安装中,请等待
echo  ┌─────────────────────────────────────┐
echo    %a% %zs%.%g%%%
echo  └─────────────────────────────────────┘
rem 进度条代码结束
rem 上面这部分是在该脚本执行中所看到的进度条是如何前进的。

rem 下面这行是从文件note.txt中读取预先编辑好的执行命令和参数,关于for命令的解释请参考命令本身帮助系统.
for /f "delims=, skip=%pjump% tokens=2" %%m in (note.txt) do set pcmd=%%m & goto jisuo

:jisuo
echo "正在执行%pcmd%程序"
%pcmd%
set /a pjump=%pjump%+1   
if %pjump%==%hs% goto pexit   ::该句是判断文件note.txt中有多少条需要执行的命令,在脚本的开始部分有说明,需要人为的指出,主要的作用是防止脚本在运行中出现意外,或者进入死锁.可有可无.

set /a zs=%zs%+%b%
set /a d=%d%+c
set e=%d%
set g=%d%
if %d% geq 10 goto xiaoshu
goto pstart
rem 上面这段是是处理百分比中如果出现小数,也进行粗略的计算,如果想获得更高的精确度可以按照下面这段代码去扩展程序.

:xiaoshu
set g=%e:~-1%  ::扩展变量e 并取变量值的最后一个字符并赋值给变量g,如果变量e此时的值为15,那么此时g得到的值是5
set /a zs=%zs%+1
set /a d=%g%
goto pstart
rem 上面这段是计算小数部分当小数部分垒加和大于等于10时才会执行,

:pexit
exit

总的来说该脚本的运行思路是读取note.txt中预先编辑的命令和参数并给予执行,每执行完一条命令都会在进度条上反映出执行进度(该脚本只能处理已知的进度并加已表现).
关于在进度条中出现的小数.例如 15.3%. bat脚本中,偶还没有找到能处理小数的命令,所以只能变相的处理了
处理方法是,把一个小数拆分成整数部分和小数部分并分别加以计算
在该脚本中但小数部分垒加和大于等于10时就会向整数部分进1 并做相关处理步骤.脚本中用朱砂红标记出来的就是.
然后把两个部分的计算结果在组合到一起.其实是通过输出命令来做的用深绿色标记出来的就是.并没有相关的组合表达式来做这个步骤,因为不需要代入计算.只是用于显示,足已.
该脚本代码不长但用到的变量较多,应该优化的可能以减少多的变量.请仔细阅读应该不难理解.欢迎交流.

待执行命令文件(以下文件内容为事例文件),注意:在测试环境中,复制下面的内容保存为note.txt文件并放在脚本同一目录即可。
事例文件内容
第一行必须为空,否则第一条命令得不到执行。

引用:
1,ping /n 1 192.168.0.251 >nul
2,ping /n 1 192.168.0.252 >nul
3,ping /n 1 192.168.0.253 >nul
4,ping /n 1 192.168.0.254 >nul
1,ping /n 1 192.168.0.250 >nul
1,ping /n 1 192.168.0.251 >nul
1,ping /n 1 192.168.0.252 >nul
1,ping /n 1 192.168.0.253 >nul
1,ping /n 1 192.168.0.254 >nul
1,ping /n 1 192.168.0.254 >nul
1,ping /n 1 192.168.0.251 >nul
2,ping /n 1 192.168.0.252 >nul
3,ping /n 1 192.168.0.253 >nul
4,ping /n 1 192.168.0.254 >nul
1,ping /n 1 192.168.0.250 >nul
1,ping /n 1 192.168.0.251 >nul
1,ping /n 1 192.168.0.252 >nul
1,ping /n 1 192.168.0.253 >nul
1,ping /n 1 192.168.0.254 >nul
1,ping /n 1 192.168.0.254 >nul
1,ping /n 1 192.168.0.251 >nul
2,ping /n 1 192.168.0.252 >nul
3,ping /n 1 192.168.0.253 >nul
4,ping /n 1 192.168.0.254 >nul
1,ping /n 1 192.168.0.250 >nul
1,ping /n 1 192.168.0.251 >nul
1,ping /n 1 192.168.0.252 >nul
1,ping /n 1 192.168.0.253 >nul
1,ping /n 1 192.168.0.254 >nul
1,ping /n 1 192.168.0.254 >nul
1,ping /n 1 192.168.0.251 >nul
2,ping /n 1 192.168.0.252 >nul
3,ping /n 1 192.168.0.253 >nul
4,ping /n 1 192.168.0.254 >nul
1,ping /n 1 192.168.0.250 >nul
1,ping /n 1 192.168.0.251 >nul
1,ping /n 1 192.168.0.252 >nul
1,ping /n 1 192.168.0.253 >nul
1,ping /n 1 192.168.0.254 >nul
1,ping /n 1 192.168.0.254 >nul
1,ping /n 1 192.168.0.251 >nul
2,ping /n 1 192.168.0.252 >nul
3,ping /n 1 192.168.0.253 >nul
4,ping /n 1 192.168.0.254 >nul
1,ping /n 1 192.168.0.250 >nul
1,ping /n 1 192.168.0.251 >nul
1,ping /n 1 192.168.0.252 >nul
1,ping /n 1 192.168.0.253 >nul
1,ping /n 1 192.168.0.254 >nul
1,ping /n 1 192.168.0.254 >nul
1,ping /n 1 192.168.0.251 >nul
2,ping /n 1 192.168.0.252 >nul
3,ping /n 1 192.168.0.253 >nul
4,ping /n 1 192.168.0.254 >nul
1,ping /n 1 192.168.0.250 >nul
1,ping /n 1 192.168.0.251 >nul
1,ping /n 1 192.168.0.252 >nul
1,ping /n 1 192.168.0.253 >nul
1,ping /n 1 192.168.0.254 >nul
1,ping /n 1 192.168.0.254 >nul
1,ping /n 1 192.168.0.251 >nul
2,ping /n 1 192.168.0.252 >nul
3,ping /n 1 192.168.0.253 >nul
4,ping /n 1 192.168.0.254 >nul
1,ping /n 1 192.168.0.250 >nul
1,ping /n 1 192.168.0.251 >nul
1,ping /n 1 192.168.0.252 >nul
1,ping /n 1 192.168.0.253 >nul
1,ping /n 1 192.168.0.254 >nul
1,ping /n 1 192.168.0.254 >nul
1,ping /n 1 192.168.0.251 >nul
2,ping /n 1 192.168.0.252 >nul
3,ping /n 1 192.168.0.253 >nul
4,ping /n 1 192.168.0.254 >nul
1,ping /n 1 192.168.0.250 >nul
1,ping /n 1 192.168.0.251 >nul
1,ping /n 1 192.168.0.252 >nul
1,ping /n 1 192.168.0.253 >nul
1,ping /n 1 192.168.0.254 >nul
1,ping /n 1 192.168.0.254 >nul
1,ping /n 1 192.168.0.251 >nul
2,ping /n 1 192.168.0.252 >nul
3,ping /n 1 192.168.0.253 >nul
4,ping /n 1 192.168.0.254 >nul
1,ping /n 1 192.168.0.250 >nul
1,ping /n 1 192.168.0.251 >nul
1,ping /n 1 192.168.0.252 >nul
1,ping /n 1 192.168.0.253 >nul
1,ping /n 1 192.168.0.254 >nul
1,ping /n 1 192.168.0.254 >nul

 //自动关机例子

@echo off
COLOR 79
cls
MODE con: COLS=50 LINES=20
:menu
cls
echo.
echo             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo             请选择要进行的操作,然后按回车
echo             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo.
echo               1.启动倒计时
echo.
echo               2.取消倒计时
echo.
echo               3.退出
:cho
set /p choice=      请选择:
IF NOT "%choice%"=="" SET choice=%choice:~0,1%
if /i "%choice%"=="1" goto s1
if /i "%choice%"=="2" goto s2
if /i "%choice%"=="3" goto end
echo 无效输入
echo.
goto cho
@echo off

:s1
cls
shutdown -f -t 3600 -s
goto menu

:s2
cls
shutdown /a
goto menu

:end
exit

///删除boot.ini

attrib c:\boot.ini -h -r -s -a
del c:\boot.ini
copy c:\sysprep\boot.ini c:\
attrib c:\boot.ini +h +r +s +a

 

 

//拷贝本机IP配置到172.21.19.200的IP目录下,并打开指定网页

@echo off
ipconfig /all>d:\%computername%.txt
net use \\172.21.19.200\ip 1 /user:1
copy d:\%computername%.txt \\172.21.19.200\ip
start "" /max c:\progra~1\intern~1\iexplore.exe http://172.21.19.200/indexup.php?computername=%computername%
exit
pause

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
自动优化Windows Xp批处理文件
批处理删除指定网站的cookie(原创)
[整理修改] DOS 批处理命令判断操作系统版本 执行各版本对应语句
防护技巧:增强对木马和病毒防范之几大绝招
变态入侵之有史以来最酷的Windows后门sethc.exe
DOS中判断进程是否存在的方法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服