bat批处理实现从特定文件夹中提取文件内容并以父文件夹名存储

1、需求分析

      标题是bat批处理实现从特定文件夹中提取文件内容并以父文件夹名存储。这里面我们要做的工作是:

①、批处理脚本使用的是bat文件;

②、文件夹下面有很多子文件夹,然后子文件夹下仍然有相同的文件结构,我们需要从三级目录中的某一特定的文件夹中拷贝所有文件;

③、每个拷贝的文件存放到新位置下,并使用原来二级文件夹的名称新建文件夹存放。

2、需求出发点

    地形图生产时,每一图幅文件夹下都会有对应的信息文件夹,在处理前只需要把每一图幅的地形图数据文件拿到存放在一起即可。

如下图构建类似的目录结构:

这里可见,src文件夹中存放原始数据,包括四幅图,这四幅图里面有都包含元数据、分层数据、图表三个文件夹。本文的处理就是需要将分层数据文件夹中的文件拷贝到new文件夹中,并且在new文件夹中仍然需要按四幅图幅的名称分别管理存储。

3、批处理实现

3.1、首先新建文本文件,并改拓展名为bat,保存编辑

增加头尾

@echo off

setlocal enabledelayedexpansion

...

echo copy完成!
endlocal

3.2、设置编码,避免中文乱码

REM 
chcp 65001
CLS

这里可以在cmd中输入chcp查看当前电脑中的编码值。

这里utf-8一般设置为65001,如果仍然乱码可以试试936或者437。如果中文乱码就是会导致后面的操作闪退。

3.3、根据要求设置处理路径和特定文件夹

echo "设置需要遍历的主文件夹路径"
set "MAIN_DIR=D:\Desktop\地形图\src"
echo "设置需要排除的文件夹名称"
set "EXCLUDE_FOLDER=分层数据"

为了保证,处理过程顺利最好,加上以下代码,因为不一定每次保证bat文件和要处理文件夹在同一位置。

d:
cd %MAIN_DIR%

3.4、遍历二级目录,然后复制文件到相应的文件夹下

echo "遍历主文件夹下的所有文件夹"
for /d %%i  in ("%MAIN_DIR%\*") do (
   echo 进入: %%i

   rem 获取到文件路径
   echo %%~dpi
   rem 获取到文件盘符
   echo %%~di
   rem 获取到文件名称
   echo %%~ni

   xcopy %%i\%EXCLUDE_FOLDER%  D:\Desktop\地形图\new\%%~ni   /s/e/i/y
)

重点就是通过%%~ni获取当前文件夹的名称。

3.5、结束结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nanke_yh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值