当前位置: 首页 > news >正文

Windows下批处理删除文件

最近我使用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!

相关文章:

Windows下批处理删除文件

最近我使用Maven的时候会出现下载jar包不成功的现象,然后需要把它删除然后重新下载,但是有时候文件过多,一个个删除太花费时间,所以用bat的批处理会很舒服。 bat的语法我之前没遇到过,然后我是边学习边试验&#xff0…...

html中文件上传储存到本地路径

第一步:写html文件 <form action"/uplode" method"post" enctype"multipart/form-data">姓名:<input type"text" name"username"><br>年龄:<input type"text" name"age"><…...

第九章 SpringBoot 自动配置原理 入门

1. 引导加载自动配置类 SpringBootApplication -- SpringBootConfiguration -- EnableAutoConfiguration -- ComponentScan //SpringBootApplicationSpringBootConfiguration EnableAutoConfiguration ComponentScan(excludeFilters { Filter(type FilterType.CUSTOM, cl…...

String str=new String(“tango“) 创建了几个对象?

面试回答 创建的对象数 应该是1个或者2个。 首先要清楚什么是对象&#xff1f; Java 是一种面向对象的语言&#xff0c;而 Java 对象在 JVM 中的存储也是有一定的结构的&#xff0c;在 HotSpot 虚拟机中&#xff0c;存储的形式就是 oop-klass model&#xff0c;即 Java 对象模型…...

引入三阶失真的非线性放大器的模拟输出及使用中值滤波器去除峰值研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

【观察者设计模式详解】C/Java/JS/Go/Python/TS不同语言实现

简介 观察者模式&#xff08;Observer Pattern&#xff09;是一种行为型模式。它定义对象间的一种一对多的依赖关系&#xff0c;当一个对象的状态发生改变时&#xff0c;所有依赖于它的对象都得到通知并被自动更新。 观察者模式使用三个类Subject、Observer和Client。Subject…...

精细解析中文公司名称:智能分词工具助力地名、品牌名、行业词和后缀提取

精细解析中文公司名称&#xff1a;智能分词工具助力地名、品牌名、行业词和后缀提取 中文公司名称分词工具&#xff0c;支持公司名称中的地名&#xff0c;品牌名&#xff08;主词&#xff09;&#xff0c;行业词&#xff0c;公司名后缀提取。 对公司名文本解析&#xff0c;识…...

网络编程(JavaEE初阶系列10)

目录 前言&#xff1a; 1.网络编程的基础 1.1为什么需要网络编程 1.2什么是网络编程 1.3网络编程中的基本概念 1.3.1发送端和接收端 1.3.2请求和响应 1.3.3客户端和服务端 2.Socket套接字 2.1概念 2.2分类 3.UDP数据报套接字编程 3.1DataGramSocket API 3.2Datagr…...

Git常用的指令

Git常用的指令 OMMP提交代码的流程 0、配置&#xff1a; git config --list 查看当前配置 git congig --global user.name user 这个会显示你的提交到git的名字 格式&#xff1a;git config [–local|–global|–system] –unset section.key 格式&#xff1a;git config [–l…...

LoadRunner(2)

一、Controller 1.1场景设计 1.通过VUG打开 施压机器&#xff1a;发起请求的角色(用户本地电脑) 被压机器&#xff1a;处理请求的角色(服务器) 2.直接双击Controller 场景设计&#xff1a;需要关注三个部分 第一部分&#xff1a; 第二部分&#xff1a; 2.1运行场景…...

CTF之逆向之阿里巴巴

题目地址&#xff1a;http://www.shiyanbar.com/ctf/13 题目预览&#xff1a; 解题过程&#xff1a; 1、下载附件发现是exe文件 2、使用PEid和Detect It Easy查壳 和 开发语言&#xff0c;发现没有加壳&#xff0c;都是用C#开发的 3、C#和Java Python属于解释型语言&#xff…...

Labview控制APx(Audio Precision)进行测试测量(五)

驱动程序 VIs如何处理配置设置中的单元 APx500 应用程序具有复杂的控件&#xff0c;具有以下功能: 数值和单位组合在一个控制中(例如&#xff0c;1.000 Vrms ) •值转换为 SI 格式(例如&#xff0c;1.000 mVrms 或 1.000 μVrms) •单位之间的转换发生在控制(例如&#xff0c;V…...

在单元测试中使用Jest模拟VS Code extension API

对VS Code extension进行单元测试时通常会遇到一个问题&#xff0c;代码中所使用的VS Code编辑器的功能都依赖于vscode库&#xff0c;但是我们在单元测试中并没有添加对vscode库的依赖&#xff0c;所以导致运行单元测试时出错。由于vscode库是作为第三方依赖被引入到我们的VS C…...

django boostrap html实现可拖拽的左右布局,鼠标拖动调整左右布局的大小或占比

一、实现的效果 最近需要在Django项目中,实现一个左右布局的html页面,页面框架使用的是boostrap。但这个布局不是简单的左右分栏布局,而是需要实现可以通过鼠标拖拽的方式动态调整左右两侧布局的大小和占比。效果大致如下: 一开始,页面分为左右两块布局: 鼠标放到中间的…...

谈谈闭包和闭包使用场景

一、什么是闭包 概念&#xff1a;闭包还是作用域的一种特殊应用 二、触发闭包的情况 1.函数当做返回值被返回 2.函数当做参数被传递 3.自执行匿名函数 //情况1&#xff1a;函数当做返回值被返回 function fn(){const a 1;return function(){console.log(a) //1}; } const a …...

MATLAB算法实战应用案例精讲-【图像处理】边界框锚框

目录 目标检测 应用场景 目标检测发展历程 常用数据集 边界框(bounding box)...

04什么场景要用到微服务

一句话导读 根据微服务的特点&#xff0c;可以总结为在构建复杂的、大型的、分布式的、高可用、高并发、高性能的应用时可以使用微服务架构。 目录 一句话导读 一、微服务适用场景 1.业务复杂&#xff0c;模块多且相对独立 2.团队多&#xff0c;管理隔离 3.应用规模大&#…...

.NET SqlSuger 简单介绍,超快开发数据库

文章目录 前言SqlSugar使用我的环境Nuget 安装新建连接串DB First 和 Code First使用增删改查 总结 前言 我之前介绍过EFCore 怎么使用Nuget快速创建数据库&#xff0c;我之后发现SqlSugar更快。这里简单再说一下SqlSugar如何使用 .NET Core 数据库DB First自动生成&#xff0…...

SpringBoot复习:(28)【前后端不分离】自定义View

一、自定义View package cn.edu.tju.view;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.stereotype.Comp…...

springcloud3 springcloud stream的学习以及案例(了解)

一 springcloud stream的作用 1.1 springcloud stream作用 stream屏蔽底层消息中间件的差异&#xff0c;降低切换成本&#xff0c;统一消息的编程模型。 stream中的消息通信模式遵循了“发布-订阅”模式。 1.2 Binder作用 通过定义绑定器Binder作为中间层&#xff0c;实现…...

拉格朗日乘数法与KKT条件在优化问题中的应用

1. 拉格朗日乘数法基础回顾在深入探讨不等式约束之前&#xff0c;让我们先回顾一下拉格朗日乘数法的基本概念。这个方法由18世纪数学家约瑟夫路易斯拉格朗日提出&#xff0c;用于求解带有等式约束的优化问题。想象你是一位登山者&#xff0c;想要找到山脉的最高点&#xff0c;但…...

从‘能用’到‘好用’:聊聊 ECharts 坐标轴配置里那些容易被忽略的细节(避坑指南)

从‘能用’到‘好用’&#xff1a;ECharts坐标轴配置的深度优化实践 第一次在项目中遇到ECharts坐标轴显示异常时&#xff0c;我盯着屏幕上重叠的日期标签和错位的网格线&#xff0c;意识到配置图表远不止是让数据"显示出来"那么简单。真正专业的可视化&#xff0c;往…...

PHP GitHub API测试驱动开发:如何编写高质量的API客户端测试

PHP GitHub API测试驱动开发&#xff1a;如何编写高质量的API客户端测试 【免费下载链接】php-github-api A simple PHP GitHub API client, Object Oriented, tested and documented. 项目地址: https://gitcode.com/gh_mirrors/ph/php-github-api 在现代PHP开发中&…...

ChatGPT摘要生成技术解析与应用实践

1. 项目概述&#xff1a;ChatGPT摘要生成技术解析第一次用ChatGPT生成会议纪要时&#xff0c;我被它的理解能力震惊了——它能从两小时的录音文本中精准提取出三个决策要点。但随后就发现&#xff0c;同样的模型在处理技术文档时&#xff0c;会把关键参数表全部略过。这种"…...

从机械爪到智能体:构建感知-决策-执行闭环的机器人系统实践

1. 项目概述&#xff1a;从“机械爪”到“智能体”的进化最近在开源社区里&#xff0c;一个名为“AgentR1/Claw-R1”的项目引起了我的注意。这个名字本身就很有意思&#xff0c;它像是一个代号&#xff0c;又像是一个产品迭代的标识。乍一看&#xff0c;“Claw-R1”很容易让人联…...

AD9850/AD9851模块PCB设计要点与STM32驱动实战:从原理图到可调信号发生器

1. AD9850/AD9851模块核心原理与选型指南 第一次接触DDS信号发生器时&#xff0c;我被AD9850芯片的精度震撼到了——用STM32驱动这个小模块&#xff0c;竟然能输出0.0291Hz分辨率的信号。这相当于在125MHz的时钟基准下&#xff0c;实现了比普通晶振高数百万倍的频率控制精度。A…...

分布式量子计算中的多体纠缠与全局门技术

1. 分布式量子计算中的多体纠缠基础量子计算领域近年来最激动人心的突破之一&#xff0c;就是多量子比特系统的协同控制能力。作为一名长期跟踪量子硬件发展的研究者&#xff0c;我亲眼见证了从最初的两个量子比特纠缠到如今数十个量子比特系统的演进过程。在这个过程中&#x…...

别再手动拖拽了!用Polyworks脚本实现点云与CAD模型的自动化粗对齐(附完整代码)

解锁Polyworks脚本潜能&#xff1a;点云与CAD模型的智能对齐实战指南 在三维测量与逆向工程领域&#xff0c;点云数据与CAD模型的对齐是每个工程师都无法绕开的必经之路。传统的手动对齐方式不仅耗时费力&#xff0c;还容易因人为因素引入误差。想象一下&#xff0c;当你面对数…...

从专利库到Zemax:一个6mm定焦镜头从零到交付的完整设计流程(含CodeV转换技巧)

从专利库到Zemax&#xff1a;一个6mm定焦镜头从零到交付的完整设计流程&#xff08;含CodeV转换技巧&#xff09; 光学设计工程师的日常工作中&#xff0c;最常遇到的挑战之一就是将理论指标转化为实际可制造的光学系统。本文将以一个6mm定焦镜头为例&#xff0c;完整展示从专利…...

JoyCode Agent:基于多智能体协同的自动化代码修复系统实战指南

1. 项目概述&#xff1a;一个能真正修复开源软件Bug的AI智能体如果你是一名开发者&#xff0c;肯定遇到过这样的场景&#xff1a;在庞大的开源项目里&#xff0c;一个看似简单的Issue&#xff0c;背后可能牵扯到多个文件、复杂的依赖关系和晦涩的业务逻辑。定位问题、理解上下文…...