日常使用windows系统的我们,难免会有一些特殊的需求,想要一款软件来帮助自己在windows系统上实现xxx功能。有时候这个功能很小,很简单,其实自己写一个bat的脚本就可以了。下面我们就来做几个简单脚本小工具,体会下bat脚本编程之美

1、Bat简介
Bat作为一种轻量级Windows脚本语言,易于入门与使用.
Bat程序是Windows系统内置的批处理文件解释器,用于执行.bat或.cmd命令脚本文件。它起源于DOS时期,随Windows发展被深度集成到系统中。Bat脚本使用简单的命令行语法,可以调用各种Windows系统命令与工具,实现简单的自动化任务。
Bat不需要安装任何软件,直接创建并运行.bat文件即可。其语法简单明了,适合初学者,也能满足轻量级脚本需求。通过组合语句与命令.Bat可以创建矩阵风格动画、启动菜单项目、定时执行任务等小工具。
直接在电脑桌面,鼠标右键,点击“新建-文本文档”,直接输入bat命令即可

输入完成后保存,然后将文件名的后缀名修改为bat如下,修改后文件的图标会变成下面这种

然后鼠标双击就可以看到如下效果

2、常用命令示范
2.1 shutdown命令实现定时开关机
Shutdown命令用于关闭、重启或注销计算机。它有以下主要参数:
/s : shutdown系统。用于关闭计算机。
/r : restart系统。用于重启计算机。
/t {时间} : 设置要等待的秒数。用于定时执行关闭或重启,如果不指定时间默认为30秒。
/c "注释" :注销屏幕上的消息。用于向用户显示关机或重启消息。
/f : 操纵进程迫使应用程序和服务注销。用于强制关闭某些进程。
/i : 显示交互界面,让用户选择关闭选项。
具体使用方法如下:
shutdown /s /t 0 立即关闭计算机
shutdown /s /c "系统即将关机" /t 30 30秒后关闭,并显示提示信息
shutdown /r 重启计算机,默认等待时间30秒
shutdown /r /t 60 60秒后重启计算机
shutdown /s /f 强制关闭计算机
shutdown /s /c "系统即将重启" /f /t 0 立即强制重启计算机并显示消息
如果不使用任何参数,直接输入shutdown则进入交互界面,提示用户输入关闭选项。我们可以选择:
1.关闭:关闭操作系统。
2.重启:重启操作系统。
3.注销:注销当前登录用户会话。
4.取消:取消操作并返回。
不使用参数的体验如下

2.2 del命令批量删除文件
del命令用于删除一个或多个文件。我们可以使用Del命令批量删除文件,语法为:
del {/p} {/f} {/s} {/q} {/a: | /a-} filenames
参数说明:
/p :删除文件前进行提示确认。
/f :强制删除只读文件。
/s :删除指定文件夹及其中的所有子文件夹和文件。
/q :安静模式,不提示确认信息。
/a: :只删除存档属性的文件。
/a- :不删除存档属性的文件。
filenames :要删除的文件名,可以使用通配符*和?。
例如:
del e:\temp\*.doc 删除e盘temp文件夹下所有.doc扩展名的文件。
del /s e:\temp 递归删除e盘temp文件夹及其中的所有子文件夹和文件。
del /f /q e:\readonly.txt 强制删除只读的readonly.txt文件,不提示确认。
del /s /a:e:\*.bak 删除e盘中所有存档属性的.bak文件。
del /a- e:\*.tmp 删除e盘中除.tmp文件外的所有文件。
2.3 rename命令批量修改文件后缀名
rename命令用于重命名文件或文件夹,语法为:
rename [drive:][path]filename1 filename2
参数说明:
drive:是盘符,就是你要处理的是哪个磁盘的数据,比如C盘、D盘
path 是具体的路径,就是你要处理的是哪个路径下的数据
filename1 是需修改的文件的文件名
filename2 是修改后的文件的文件名
::比如下面这个命令,就是把 D:\test 这个路径下的 1.txt 文件的文件名改为 1.log
rename D:\test\1.txt 1.log
基于上面的基础,我们可以实现批量修改文件后缀名,比如常用的把jpg图片改为png格式
::这里写的是ren,而不是rename,是因为rename可以简写成ren,这里写成rename也可以
::这里就是把d盘,test目录下的jpg文件修改为png文件
ren d:\test\*.jpg *.png
2.4 定时任务清理回收站
创建定时任务使用schtasks命令,语法为:
schtasks /create /sc schedule /mo modifier /d day /m months /i idletime /tn taskname /tr taskrun
参数说明:
/sc schedule :任务计划类型,如HOURLY、DAILY、WEEKLY等
/mo modifier :修饰计划,如每X小时、日期等
/d day :如果是周计划,指定周几,用数字或缩写表示如1-7或MON-SUN
/m months :如果是月计划,指定月份,用数字或缩写JAN-DEC表示
/i idletime :空闲时间,即电脑空闲后多长时间运行任务
/tn taskname :任务名称
/tr taskrun :要运行的命令或脚本
比如我们这里创建一个脚本,每天晚上10点定时清理回收站
@echo off
schtasks /create /sc daily /tn "clearecyclebin" /tr "powershell.exe Clear-RecycleBin" /st 22:00
schtasks /query /tn "clearecyclebin"
pause
执行后效果如下

到达计划的时间后,系统会自动弹出一个窗口,询问是否执行计划的工作事项,而不是直接就执行,如下

如果需要执行的话,输入y,然后按下enter键就可以了。如果不需要执行,按下n,然后按下enter键就可以了
2.5 实现类似黑客帝国的代码雨
效果如下

详细代码如下
@echo off
color 0a
:start
set num=0
set "echos= "
:num
set /a a1=%random%%%3
if "%a1%" == "1" set "a1= "
if "%a1%" == "2" set "a1= "
if "%a1%" == "0" set /a a1=%random%%%2
set echos=%echos%%a1%
set /a num=%num%+1
if "%num%" == "150" echo %echos%&goto :start
goto :num
pause >nul
exit
代码逐行解释如下

bat的可玩性还有很多,这里不再一一列举。上面只是想说明,我们可能轻视了bat文件的作用,其实它能帮助我们解决很多日常工作中的小问题
相关文章
暂无评论...