【CMD】工具脚本-输出其他cmd脚本的头部注释

news2024/12/22 14:03:53

小轮子,用于管理自己的脚本。
如下图的运行结果所示,效果便是输出本工具脚本所在路径下的其他cmd脚本的头部注释(用于提醒健忘的自己曾经写了啥东西。

可以把不时会用得上的个人脚本,集中放进一个文件夹中,然后将这个文件夹的路径加进环境变量中,方便自己的使用



运行结果:

运行结果

脚本:

@echo off
rem 罗列本脚本所在路径下所有脚本文件(*.cmd)并输出脚本文件中的头部注释内容

@echo off
rem 解决for语句中set变量失效的问题:https://blog.csdn.net/weixin_44733774/article/details/134774369
rem 逐行获取文件内容:https://www.cnblogs.com/gered/p/10682741.html#autoid-2-0-0
rem 字符串截取+替换:https://zhuanlan.zhihu.com/p/421422830
rem for命令不遗漏空行:http://www.bathome.net/thread-9174-1-1.html
rem SET变量判空:https://blog.csdn.net/weixin_44733774/article/details/134774852
rem 获取目录下文件:https://blog.csdn.net/xieyunc/article/details/80471107


rem flag等效于循环语句的break。flag为0时后面的文本不作处理
rem 至多接受1次@echo
SET flag=2
SET path_old=%cd%
cd /d %~dp0
for /f "delims=" %%i in ('dir /b') do ( 
	if "%%~xi"==".cmd" (
		echo.----------------------------------------------------------------------
		echo.%%i
		for /f "delims=" %%i in ('findstr /n .* %%i') do (call :ReadRow "%%i")
	)
	if "%%~xi"==".bat" (
		echo.----------------------------------------------------------------------
		echo.%%i
		for /f "delims=" %%i in ('findstr /n .* %%i') do (call :ReadRow "%%i")
	)
	SET flag=2
)
cd /d %path_old%
goto :eof

:ReadRow
if %flag%==0 (goto :eof)
SET row=%1
SET row=%row:~1,-1%
SET row=%row:*:=%
call :EmptyTest %row%
goto :eof

:EmptyTest
if "%1"=="" ( 
	rem echo. 
	goto :eof
) 

rem 只能说,挺无奈的,到哪都得塞上双引号然后再取下来,那些开发者就不能多给SET命令多一个控制参数吗?真的折磨
if "%row:~,2%"=="::" (
	SET row="%row:~2%"
	goto :PrintRow
)
if "%row:~,4%"=="rem " (
	SET row="%row:~4%"
	goto :PrintRow
)
if "%row:~,5%"=="@echo" (
	SET /A flag=flag-1
	goto :eof
)
SET /A flag=0
goto :eof

:PrintRow
echo %row:~1,-1%



参考

  • 关于在for中SET变量失效的问题:https://blog.csdn.net/weixin_44733774/article/details/134774369

未经个人同意不得私自转载,本文发布于CSDN:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1283166.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++】赋值运算符重载

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …

“学习强国”学习达人挑战赛流程

“学习强国”学习达人挑战赛通过赛易知识竞赛云平台完成,完整竞赛流程和规则如下: 比赛形式:“学习强国”学习平台首届达人挑战赛决赛为电视知识竞赛,前期需录入100名选手个人信息与各环节竞赛题库。 比赛载体:手机在…

龙迅#LT6911GX是一款高性能HDMI2.1至MIPI或LVDS芯片,支持图像处理,DSC压缩和嵌入式LPDDR4 旋转功能!

1.描述 应用功能:LT6711GX适用于HDMI2.1转MIPICSI/DSI;HDMI2.1转LVDS,支持高刷模式,带HDCP 方案! 分辨率:最高支持8K30HZ 工作温度范围:−40C to 85C 产品封装:BGA169(9*…

RabbitMQ 的七种消息传递形式

文章目录 一、RabbitMQ 架构简介二、准备工作 三、消息收发1. Hello World2. Work queues3. Publish/Subscrite3.1. Direct3.2. Fanout3.3. Topic3.4. Header 4. Routing5. Topics 大部分情况下,我们可能都是在 Spring Boot 或者 Spring Cloud 环境下使用 RabbitMQ&…

【powerjob】定时任务调度器 xxl-job和powerjob对比

文章目录 同类产品对比资源及部署相关资源占用对比:部署方式:xxl job :调度器:执行器: powerjob:调度器:执行器: 总结 背景: 目前系统的定时任务主要通过Spring框架自带的Scheduled注…

SpringBoot:SpringMVC(上)

文章目录 前言一、SpringMVC是什么?1.1 MVC的定义:1.2 MVC 和 Spring MVC 的关系 二、Spring MVC 创建和连接2.1创建springmvc2.2接下来,创建⼀个 UserController 类,实现⽤户到 Spring 程序的互联互通,具体实现代码如…

分享77个菜单导航JS特效,总有一款适合您

分享77个菜单导航JS特效,总有一款适合您 77个菜单导航JS特效下载 链接:https://pan.baidu.com/s/1sfT9ONLH4ocliA1C7Z5xbQ?pwd6666 提取码:6666 Python采集代码下载链接:采集代码.zip - 蓝奏云 学习知识费力气&#xff0…

数据库系统原理与实践 笔记 #11

文章目录 数据库系统原理与实践 笔记 #11事务管理和并发控制与恢复事务概念转账的例子 事务ACID特性ACID特性事务原子性和持久性事务隔离性调度SQL中的事务定义 可串行化事务的简化视图冲突的指令冲突可串行化 可恢复性级联回滚无级联调度 数据库系统原理与实践 笔记 #11 事务…

Python中format函数用法

嗨喽~大家好呀,这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 format优点 format是python2.6新增的一个格式化字符串的方法,相对于老版的%格式方法,它有很多优点。 1.不需要理会数据类型的问题&#…

pip的基本命令和使用

pip 简介 pip是Python官方的包管理器,可以方便地安装、升级和卸载Python包。 pip 常用命令 显示版本和路径 pip --version获取帮助 pip --help升级pip和升级包 pip install --upgrade pip # Linux/macOS pip install -U pip # windowspip install…

CVE-2016-2510CVE-2017-5586 BeanShell漏洞

前言: 首先我们需要了解BeanShell具体是做什么: BeanShell 是一种轻量级的可嵌入式脚本语言,用于在 Java 环境中执行脚本代码。它提供了一种简单、灵活的方式来扩展和定制 Java 应用程序的行为,允许开发人员动态地执行和评估脚本…

顺序查找、折半查找、分块查找

概念 查找表,分为静态查找表和动态查找表。 顺序查找 效率分析: 优化 折半查找 折半查找,又称“二分查找”仅适用于有序的顺序表。 ⭐,因为顺序表可以随机访问,链表不可以 效率分析 折半查找判定树的构造 如果&…

食品加工厂污水处理设备有哪些

食品加工厂污水处理设备是确保食品生产过程中污水能够得到有效处理和排放的重要设备。目前,针对食品加工厂污水处理的设备包括以下几个主要分类: 1. 预处理设备:包括格栅、沉砂池和沉淀池等。格栅主要用于去除污水中的大颗粒固体物质&#x…

Ubuntu20.04安装向日葵、开机自启、解决windows系统远程黑屏(笔记)

这里写目录标题 动机1. Ubuntu20.04 安装向日葵2. 设置开机自启3. 解决windows不可远程的问题4. 大公告成 动机 办公室有个工作站,要比我的笔记本的CPU稍微好一点,用来跑陆面过程。我信心满满的装了个Ubuntu20.04双系统,但是发现向日葵安装不上了。我少…

一.线性表

一.单链表 1.定义结构体 1.1不带头结点的结构体 typedef struct node{int data;struct node *next;//struct node *prior;//双向链表需要加上指针prior }Lnode,*Linklist; 1.2带头结点的结构体 typedef struct node{int data;struct node * next; }Node;typedef struct l…

一个可用于临床的食管癌远处转移预测模型(shiny APP)

一个可用于临床的食管癌远处转移预测模型(APP) 最近将之前构建的一个预测食管癌远处转移模型制作成了APP(地址见文末),有一些思考,和大家分享如下: 1. 充分的说明 首先,对模型的…

面试题:为什么数据库连接池不采用 IO 多路复用?

今天我们聊一个不常见的 Java 面试题:为什么数据库连接池不采用 IO 多路复用? 这是一个非常好的问题。IO多路复用被视为是非常好的性能助力器。但是一般我们在使用 DB 时,还是经常性采用c3p0,tomcat connection pool等技术来与 D…

软件验收计划书

软件项目验收计划的作用主要有以下几点: 确保项目质量:通过项目验收,客户或相关方可以对项目的成果进行全面、系统的评估,以确保项目达到预期的质量标准。 发现和解决问题:在项目开发过程中,难免会存在一些…

软著项目推荐 深度学习的口罩佩戴检测 - opencv 卷积神经网络 机器视觉 深度学习

文章目录 0 简介1 课题背景🚩 2 口罩佩戴算法实现2.1 YOLO 模型概览2.2 YOLOv32.3 YOLO 口罩佩戴检测实现数据集 2.4 实现代码2.5 检测效果 3 口罩佩戴检测算法评价指标3.1 准确率(Accuracy)3.2 精确率(Precision)和召回率(Recall)3.3 平均精…

Ant Design Pro初始化报错

今天按照官网步骤初始化项目,第一次报错 fatal: unable to access https://github.com/ant-design/ant-design-pro/: SSL certificate problem: unable to get local issuer certificate 致命:无法访问https://github.com/ant-design/ant-design-pro/&…