辽宁移动网站,制作一个官网,app优化网站建设,做网站怎么分手机版和电脑版最近我使用Maven的时候会出现下载jar包不成功的现象#xff0c;然后需要把它删除然后重新下载#xff0c;但是有时候文件过多#xff0c;一个个删除太花费时间#xff0c;所以用bat的批处理会很舒服。
bat的语法我之前没遇到过#xff0c;然后我是边学习边试验#xff0…最近我使用Maven的时候会出现下载jar包不成功的现象然后需要把它删除然后重新下载但是有时候文件过多一个个删除太花费时间所以用bat的批处理会很舒服。
bat的语法我之前没遇到过然后我是边学习边试验写出了一个简陋版的批处理文件。
我的思路是
1、遍历目标文件夹。2、找到目标文件后删除该文件夹(通过观察下载失败的jar可知当出现sha1-in-progress后缀的文件时即该文件下载失败)。 很多知识我都是从写个批处理脚本来帮忙干活–遍历文件夹字符串处理这篇博客中学习到非常感谢分享。 遍历文件夹
for循环即可遍历文件夹
命令for [参数] %%变量名 in (匹配符) do (执行的命令)
参数可以分为/d,/r,/l,/f,无参
无参 : 遍历当前文件夹下的文件/d : 遍历当前文件夹下的子文件夹/r : 深度遍历当前文件夹下的所有文件/l : 迭代数值范围使用迭代变量设置起始值然后逐步执行一组范围的值直到该值超过所设置的终止值/f : 用于解析文件内容
例如
for /r C:\Users\Panlf\.m2\repository %%i in (*.sha1-in-progress) do (echo %%i
)上述的意思深度遍历C:\Users\Panlf\.m2\repository文件下的所有文件找出文件后缀名为sha1-in-progress的文件并打印。
当然也可以输出到文件中
for /r C:\Users\Panlf\.m2\repository %%i in (*.sha1-in-progress) do (echo %%i E:\m.txt
)可以将结果输出到E盘的m.txt文件中注意不能使用不然只会输出一个结果到文件中必须使用。
删除文件夹
上面是遍历文件现在要删除文件夹。
bat删除有两个命令rd、del。
命令rd删除目录 参数/s
说明用于删除目录树即删除目录及目录下的所有子目录和文件。 参数/q XP中的增强DOS命令
说明进行删除操作时将取消确认。 命令del删除文件或目录
参数/f
说明使用此参数可删除只读文件。 参数/s、/q
说明即删除目录及目录下的所有子目录和文件。同时使用参数/Q可取消删除操作时的系统确认。 参数/a
说明删除指定属性或指定属性以外的文件/AR、/AH、/AS、/AA表示删除只读、隐藏、系统、存档文件
/A-R、/A-H、/A-S、/A-A表示删除除只读、隐藏、系统、存档以外的文件。 最后我完成一个简陋版
echo off
setlocal enabledelayedexpansion
set /p input_path请输入要要操作的文件夹:
echo 获取到的地址:%input_path%
for /r %input_path% %%i in (*.sha1-in-progress) do (set pan_name%%~diset del_name%%~piset true_name!pan_name!!del_name!echo !true_name!rd /s /q !true_name!
)
pause注意
1、%%i根据不同的for使用方式内容也有所不同:
%%~fi表示获取该文件的绝对路径信息
%%~di表示获取该文件所在的盘符
%%~pi表示获取该文件的路径不包含盘符的信息
%%~ni表示获取该文件的文件名不包含扩展名信息
%%~xi表示获取该文件的扩展名
%%~ti表示获取该文件的上次修改时间
%%~zi表示获取该文件的大小2、在for循环中定义中临时变量的时候
在for循环定义set pan_name%%~di如果直接echo pan_name会报echo关闭状态不能使用。
所以需要第一启用变量延迟功能setlocal enabledelayedexpansion第二调用变量的时候使用!pan_name!3、字符串拼接
set true_name!pan_name!!del_name!