bat批处理--使用windows自动化处理工作
最近chartGPT很火,AI革命要来了,但今天我们讲的不是它,只是和它稍微有点关系,属于他的爷爷辈的技术。虽然没它那么强大,但也是能对提高效率起到很大作用的。
有时候需要在windows上做很多相同的步骤,比如执行完某个程序后需要打开某个文件夹地址,复制来复制去,这些固定的流程其实是可以被固化下来放桌面上一键执行的。
玩过linux的同学一般都会一些shell脚本,思路是相同的,无非windows下使用的是叫bat的脚本而已。
举个实际的例子,老三昨天需要调用一段程序生成生成文件,然后把文件复制到另一个程序下进行检查,最后还需要把经过检查的文件复制到最终的地址。这种复制来复制去的操作很烦人,而且中途打断后又需要重头再来,因为每次的步骤都是固定的,因此写一段bat脚本是个不错的处理方式。
//cd到某文件夹目录
cd /d D:\laosan
//复制文件到另一目录
xcopy /y /d %~dp0\exp1 C:\Users\exp1
//执行某个脚本
java -jar exp.jar
//界面打开文件夹
start "" "D:\laosan"
如上脚本就可以做到复制、检查、完成后windows界面自动弹出处理之后的文件夹界面。但还有一些优化点,比如,我怎么知道命令都执行成功了?检查中是否有异常?这些就需要加入日志文件以供确认。脚本修改如下
echo %date% %time% >>nohub.txt
//cd到某文件夹目录
cd /d D:\laosan
//复制文件到另一目录
xcopy /y /d %~dp0\exp1 C:\Users\exp1
//执行某个脚本
java -jar exp.jar >>nohub.txt
//界面打开文件夹
start "" "D:\laosan"
添加了每次执行的时间,并将时间和脚本输出都放入nohub.txt的文件中,可以随时查看执行详情。
另:附录上常用语句
@echo off --关闭命令回显
:: --注释
pause --暂停执行,按键继续
xcopy --复制文件夹 /y跳过覆盖确认 /d增量复制
举例 xcopy /y /d .\typora-user-images %AppData%\Typora\typora-user-images\
[盘符]: --跳转磁盘
cd [路径] --跳转同一盘符路径
/d --跳转任意路径
echo Hello World >file.txt --输出内容到文件
echo Hello World >>file.txt --输出内容追加到文件
start "" "c:\windows" --界面弹出文件夹 注意:如果路径有中文,需要保存bat脚本为ANSI编码
echo %date% %time% --输出日期和时间
REM echo 当前盘符:%~d0
REM echo 当前路径:%cd%
REM echo 当前执行命令行:%0
REM echo 当前bat文件路径:%~dp0
REM echo 当前bat文件短路径:%~sdp0
setx PATH "%PATH%;D:\Program Files\" --永久设置环境变量