为啥我这么喜欢用 BAT 批处理
大家发现我在代码中频繁使用了批处理(bat)调用,这种在Windows下的工具确实非常强大且方便。
批处理还可以与其他编程语言和工具结合使用,实现更复杂的功能。
可以通过批处理脚本调用其他程序或脚本,利用它们的功能来完成特定的任务。这种灵活性使得批处理成为一个强大的工具,可以适应各种需求和场景。
例如,可以通过批处理脚本自动备份重要文件,或者批量处理文件和文件夹。这些任务通常需要耗费大量时间和精力,但使用批处理,只需编写一次脚本,然后简单地运行它,就能轻松完成这些任务。
总之,目前主流用着还是Windows系统,因此在Windows环境下提供了许多便利和效率,让能够更高效地完成任务。
以下是我经常用到的批处理,都没有太复杂工作,很多都是起到一个承接转换的工作。
可以用来修改 Windows 注册表
这里有 一些基于批处理修改 Windows 注册表的语句,不再赘述。
可以快捷调用一些软件,比如后台快速启动、关闭虚拟机
比如启动 vboxmanage
vboxmanage startvm Ubuntu -type headless
可以快捷调用代码运行环境
比如之前的拖动文件到 bat 图标上边运行 python 代码这类应用、获取文件的 MD5、SHA 值、读取 TXT 内容对应模板生成 Word 这类。
可以快捷启动一个临时 web 网站
这个是我经常用于下载服务器一些文件的批处理,非常方便部署一个可外网访问的 web 服务。
只需要将文件夹拖动到 bat 图标上边,即可快速打开一个端口号为 9090 的 web 服,里边默认的内容就是文件夹里边的文件列表,可以快捷的提供文件的下载操作,用完关掉这个 CMD 窗口即可。不长期使用,不考虑安全性,真的很方便。
@echo off
python -m http.server 9090 --bind 0.0.0.0 -d %1
pause
可以根据图片(文件)的创建时间,批量的给图片(文件)修改名称
有一部分手机或者单反导出的相片,文件命名不是按时间命名的。这就导致整理图片的时候很难弄。通过这个可以很快的将图片按时间排序,方便后期整理。
可以快捷的更改电脑 IP 地址
根据内外网快速更改 IP 地址,省去了每次都重新手输一遍的痛苦,不用安装任何软件,只用批处理就能解决。
@echo off
set name="内网"
echo.
echo. 网卡名称为:%name%
echo.
echo.
echo. 1: 切换到内网
echo.
echo. 2: 切换到外网DHCP
echo.
echo. 3: 外网独立IP
echo.
echo.
set /p id=你的选择是:
set n-ip="10.10.10.199"
set n-mask="255.255.255.192"
set n-gateway="10.10.10.193"
set n-dns1="10.10.10.200"
set n-dns2="10.10.10.201"
set d-ip="1.1.1.1"
set d-mask="255.255.255.192"
set d-gateway="1.1.1.1"
set d-dns1="8.8.8.8"
set d-dns2="114.114.114.114"
if "%id%"=="3" goto dl
if "%id%"=="2" goto ww
if "%id%"=="1" goto nw
:ww
@echo 正在转换为外网DHCP
netsh interface ip set address name="%name%" dhcp
netsh interface ip set dnsservers name="%name%" source=dhcp
echo. 已经配置完成
PAUSE
exit
:nw
@echo 正在转换为内网
netsh interface ip set address name="%name%" static %n-ip% %n-mask% %n-gateway% 1
netsh interface ip set dns name="%name%" static %n-dns1%
netsh interface ip add dns name="%name%" %n-dns2% index=2
echo. 已经配置完成
PAUSE
exit
:dl
@echo 正在转换为独立IP
netsh interface ip set address name="%name%" static %d-ip% %d-mask% %d-gateway% 1
netsh interface ip set dns name="%name%" static %d-dns1%
netsh interface ip add dns name="%name%" %d-dns2% index=2
echo. 已经配置完成
PAUSE
exit
可以强力删除文件
DEL /F /A /Q \\?\%1
RD /S /Q \\?\%1
有的时候删除不了,还是得用软件。