【bat】自动生成指定层级文件夹

news2024/12/29 10:19:01

在这里插入图片描述

🌅 一日之计在于晨,启航新程
⭐ 本期特辑:自动生成指定层级文件夹
🏆 系列专题:BAT脚本工坊


文章目录

  • 前言
  • 批处理脚本介绍
  • 脚本执行过程
  • 总结


前言

在日常的计算机使用过程中,我们经常需要创建文件夹来组织和管理文件。有时候,我们需要创建一系列具有层次结构的文件夹,例如一个顶级文件夹下包含多个子文件夹。手动创建这些文件夹可能会比较繁琐,特别是当文件夹数量较多时。为了简化这一过程,我们可以使用批处理脚本来自动创建这些文件夹。
本文将介绍如何使用批处理脚本(Batch Script)在Windows操作系统中自动创建具有层次结构的文件夹,并通过一个具体的例子来演示这一过程。


批处理脚本介绍

批处理脚本是一种在Windows操作系统中用于自动化任务的脚本语言。通过编写批处理脚本,我们可以执行一系列命令,如创建文件夹、复制文件、运行程序等。批处理脚本通常以.bat.cmd为扩展名。

脚本执行过程

在需要生成文件夹的目录下新建一个txt文件。

在这里插入图片描述

打开txt文件,编辑代码如下,然后保存。

@echo off  
setlocal  
  
REM 指定要创建的顶级文件夹名称  
set "TOP_FOLDER=top_folder"  
  
REM 指定要在顶级文件夹下创建的子文件夹名称  
set "SUB_FOLDER1=folder1"  
set "SUB_FOLDER2=folder2"  
  
REM 创建顶级文件夹  
if not exist "%TOP_FOLDER%" (  
    mkdir "%TOP_FOLDER%"  
    echo 顶级文件夹 %TOP_FOLDER% 已创建。  
) else (  
    echo 顶级文件夹 %TOP_FOLDER% 已存在。  
)  
  
REM 在顶级文件夹下创建子文件夹  
if not exist "%TOP_FOLDER%\%SUB_FOLDER1%" (  
    mkdir "%TOP_FOLDER%\%SUB_FOLDER1%"  
    echo 子文件夹 %SUB_FOLDER1% 已创建在 %TOP_FOLDER% 下。  
) else (  
    echo 子文件夹 %SUB_FOLDER1% 已存在于 %TOP_FOLDER% 下。  
)  
  
if not exist "%TOP_FOLDER%\%SUB_FOLDER2%" (  
    mkdir "%TOP_FOLDER%\%SUB_FOLDER2%"  
    echo 子文件夹 %SUB_FOLDER2% 已创建在 %TOP_FOLDER% 下。  
) else (  
    echo 子文件夹 %SUB_FOLDER2% 已存在于 %TOP_FOLDER% 下。  
)  
  
endlocal  
@echo on

代码执行逻辑如下:

  1. 关闭命令回显@echo off用于关闭命令的回显,使脚本执行时只显示我们想要输出的信息,而不是每条命令的执行情况。
  2. 设置本地化环境setlocal用于开始本地化环境的更改,这样可以确保脚本执行完后,对环境变量的更改不会影响到系统的全局环境。
  3. 定义变量:使用set命令定义顶级文件夹和子文件夹的名称。
  4. 创建顶级文件夹:使用if not exist判断顶级文件夹是否存在,如果不存在则使用mkdir命令创建,并输出创建成功的消息;如果已存在,则输出已存在的消息。
  5. 创建子文件夹:同样使用if not exist判断子文件夹是否存在,并在不存在时创建它们,同时输出相应的消息。
  6. == 结束本地化环境==:endlocal用于结束本地化环境的更改,恢复系统的全局环境。
  7. 打开命令回显@echo on用于在脚本执行完后打开命令的回显。

代码编写完成后,将txt文件保存为 .bat文件。如果文件后缀没有显示,则点击查看,显示,勾选文件扩展名,就可以修改文件后缀啦~

在这里插入图片描述
在这里插入图片描述

双击bat文件,在该文件夹下就会自动生成目标文件夹啦!

在这里插入图片描述
在这里插入图片描述


总结

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

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

相关文章

45.第二阶段x86游戏实战2-hook监控实时抓取游戏lua

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 本次游戏没法给 内容参考于:微尘网络安全 本人写的内容纯属胡编乱造,全都是合成造假,仅仅只是为了娱乐,请不要…

ISAAC SIM踩坑记录--ROS2相机影像发布

其实这个例子官方和大佬NVIDIA Omniverse和Isaac Sim笔记5:Isaac Sim的ROS接口与相机影像、位姿真值发布/保存都已经有详细介绍了,但是都是基于ROS的,现在最新的已经是ROS2,这里把不同的地方简单记录一下。 搭建一个简单的场景&a…

MySQL技巧之跨服务器数据查询:基础篇-A数据库与B数据库查询合并

MySQL技巧之跨服务器数据查询:基础篇-A数据库与B数据库查询合并 上一篇已经描述:借用微软的SQL Server ODBC 即可实现MySQL跨服务器间的数据查询。 而且还介绍了如何获得一个在MS SQL Server 可以连接指定实例的MySQL数据库的链接名: MY_ODBC_MYSQL 以…

问:MySQL主从同步的机制梳理?

MySQL主从复制是一种数据库复制技术,通过将一个MySQL数据库服务器(主节点)的数据复制到一个或多个其他MySQL数据库服务器(从节点),实现数据的自动同步。这种技术不仅提高了数据的可用性,还能通过…

物联网低功耗广域网LoRa开发(一):LoRa物联网行业解决方案

一、LoRa的优势以及与其他无线通信技术对比 (一)LoRa的优势 1、164dB链路预算 、距离>15km 2、快速、灵活的基础设施易组网且投资成本较少 3、LoRa节点模块仅用于通讯电池寿命长达10年 4、免牌照的频段 网关/路由器建设和运营 、节点/终端成本低…

【Linux】sudo make install 命令往系统中安装了什么 指定目录进行安装

前情提要 假如我们通过源码安装的方式,安装一个动态库,风格往往是这样的: # 克隆仓库 git clone https://github.com/xxx.git# 进入仓库目录 cd xxx编译 # ... 可能有一些校验代码完整性的sh命令# 构建 mkdir build cd build cmake ..# 编…

基于YOLOv5的人群密度检测系统设计与实现

大家好,本文将介绍基于改进后的YOLOv5目标检测模型,设计并实现人群密度检测系统。 使用YOLOv5的源代码,在此基础上修改和训练模型, 数据集选用crowdhuman数据集。对yolov5源码中的文件进行修改,更换主干网络、改进损失…

zabbix搭建钉钉告警流程

目录 zabbix实验规划 zabbix实验步骤 1 使用钉钉添加一个自定义的机器人 ​编辑2在zabbix-server上编写钉钉信息发送脚本,设置钉钉报警媒介 设置钉钉报警媒介​编辑​编辑 在添加消息模板​编辑​编辑​编辑 3设置动作条件 触发后的行为:重新添加一…

在 Oracle Linux 8.9 上安装Oracle Database 23ai 23.5

在 Oracle Linux 8.9 上安装Oracle Database 23ai 23.5 1. 安装 Oracle Database 23ai2. 连接 Oracle Database 23c3. 重启启动后,手动启动数据库4. 重启启动后,手动启动 Listener5. 手动启动 Pluggable Database6. 自动启动 Pluggable Database7. 设置开…

vxe-table 3.10+ 进阶高级用法(一),根据业务需求自定义实现筛选功能

vxe-table 是vue中非常强大的表格的,公司项目中复杂的渲染都是用 vxe-table 的,对于用的排序。筛选之类的都能支持,而且也能任意扩展,非常强大。 默认筛选功能 筛选的普通用法就是给对应的列指定参数: filters&#…

机器学习笔记2 - 机器学习的一般流程

image.png 1、数据基本处理 数据集的划分 根据用途可将获取到的数据划分为训练集和测试集,有时还会有验证集。一般而言训练集用于训练模型,测试集用于测试模型的效果(泛化误差)。严格来讲,测试集的数据不能直接或间接&…

鸿蒙进阶篇-type、typeof、类

“在科技的浪潮中,鸿蒙操作系统宛如一颗璀璨的新星,引领着创新的方向。作为鸿蒙开天组,今天我们将一同踏上鸿蒙基础的探索之旅,为您揭开这一神奇系统的神秘面纱。” 各位小伙伴们我们又见面了,我就是鸿蒙开天组,下面让我们进入今…

log4j异常堆栈文件输出

目的:log4j异常堆栈关联到traceId一句话中,方便搜索 1、获取堆栈后一起打印 private void logException(Throwable t, ProceedingJoinPoint joinPoint) {if (this.printErrorStackSys) {StringWriter sw new StringWriter();PrintWriter pw new Print…

ReactPress:构建高效、灵活、可扩展的开源发布平台

ReactPress Github项目地址:https://github.com/fecommunity/reactpress 欢迎Star。 在当今数字化时代,内容管理系统(CMS)已成为各类网站和应用的核心组成部分。ReactPress,作为一款融合了现代Web开发多项先进技术的开…

【笔记】Springboo项目启动失败

application run failed org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name adviceMapper defined in file 原因是mybatisplus和springboot的版本不匹配 修改后: springboot mybatisplus 成功

PET-文件包含

include发生错误报warning,继续执行。require发生错误直接error,不继续执行 无视扩展名,只要能解析,就能当可执行文件执行,哪怕文件后缀或没后缀 1 条件竞争 pass17 只需要知道tmp的路径。把xieshell.jpg上传&…

强化学习入门笔记(Reinforcement Learning,RL) 强推!

由于本人的近期研究方向涉及到强化学习,本科时已经学习过了,但是感觉还是有些概念和算法没有学懂学透,所以想重新系统性的学习一下,记录了整个学习过程,而且对当时没有理解不是特别深刻的内容有了一些更加深刻的理解&a…

HTB:Photobomb[WriteUP]

目录 连接至HTB服务器并启动靶机 使用nmap对靶机进行端口开放扫描 再次使用nmap对靶机开放端口进行脚本、服务扫描 使用ffuf进行简单的子域名扫描 使用浏览器直接访问该域名 选取一个照片进行下载,使用Yakit进行抓包 USER_FLAG:a9afd9220ae2b5731…

Golang | Leetcode Golang题解之第560题和为K的子数组

题目&#xff1a; 题解&#xff1a; func subarraySum(nums []int, k int) int {count, pre : 0, 0m : map[int]int{}m[0] 1for i : 0; i < len(nums); i {pre nums[i]if _, ok : m[pre - k]; ok {count m[pre - k]}m[pre] 1}return count }

【Vue】Vue3.0(二十)Vue 3.0 中mitt的使用示例

上篇文章 【Vue】Vue3.0&#xff08;十九&#xff09;Vue 3.0 中一种组件间通信方式-自定义事件 &#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f916;Vue专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年11月11日12点23分 文章目录 一、mitt 在…