吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1463|回复: 34
收起左侧

[其他原创] BAT脚本 获取目录下2级目录文件夹名称

[复制链接]
Tiana丶Tiana 发表于 2024-4-22 11:06
本帖最后由 Tiana丶Tiana 于 2024-4-25 09:56 编辑

因为工作中遇到需要统计超多的文件夹名字。懒得写程序又想省力气,就只能选择经常被人遗忘的BAT脚本。
适用于:统计工作
使用情景:
1948年 - 2023工作内容 ,每一年下面的子文件夹名称需要与数据表中名称核对一致。显然让你去每个文件去粘贴复制到EXCEL是不可能的。
image.png


优化后更好的方法可以看后面:一楼大佬

[Shell] 纯文本查看 复制代码
@echo off
title 文件夹目录获取

for /f "delims=" %%a in ('cd') do @set CURRENT_DIR=%%a

echo 当前路径: %CURRENT_DIR%

dir /AD /B %CURRENT_DIR% > dirlist.txt

set tag=\
set tag2=\dirlist.txt
set dirlist=%CURRENT_DIR%%tag2%

for /f %%i in (%dirlist%) do (

  echo 正在处理路径: %CURRENT_DIR%%tag%%%i

  dir /ad /b %CURRENT_DIR%%tag%%%i  >> list.txt

)

del %CURRENT_DIR%%tag2%

echo  ---------------------------------------------
echo  已写入到 %CURRENT_DIR% list.txt 文件
echo  ---------------------------------------------


pause



免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
shaosir2024 + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

namejm 发表于 2024-4-22 12:51
本帖最后由 namejm 于 2024-4-22 13:01 编辑

感觉楼主的代码还可以再优化一下:
1、获取当前文件夹路径没必要放在 for 语句中处理,直接用 %cd% 获取即可
2、既然都已经用到 for 了,就没必要再使用临时文件,可以使用 for 语句嵌套
3、如果文件夹名中包含了 & ,代码必然出错,路径名称最好用双引号括起来,正式引用前再在文本中批量去除双引号即可
4、在 for 语句中用 dir >>txt 语句频繁写入文本,如果第一层文件夹数量超多,CPU占用和写入速度应该是很难令人满意的

试着优化一下代码:
[Shell] 纯文本查看 复制代码
@echo off
title 卷宗目录获取
 
echo 当前路径: "%CD%"
 
(for /f "delims=" %%i in ('dir /ad /b 2^>nul') do (
  for /f "delims=" %%j in ('dir /ad /b "%%i" 2^>nul') do (
    echo "%CD%\%%i\%%j"
  )
))>list.txt
 
echo  ---------------------------------------------
echo  已写入到 list.txt 文件
echo  ---------------------------------------------
 
 
pause

免费评分

参与人数 2吾爱币 +2 热心值 +2 收起 理由
greatpeng + 1 + 1 文心一言写得都不如这个简洁
Tiana丶Tiana + 1 + 1 我很赞同!

查看全部评分

Pwaerm 发表于 2024-4-22 11:53
xl2pojie 发表于 2024-4-22 11:28
zjkedy 发表于 2024-4-22 11:52
积少成多, 继续努力
kittylang 发表于 2024-4-22 12:28
bat和pwsh一比属实一坨
eenny820 发表于 2024-4-22 13:22
bat的脚本可以写入到VB.NET么?
wkdxz 发表于 2024-4-22 14:18
namejm 发表于 2024-4-22 12:51
感觉楼主的代码还可以再优化一下:
1、获取当前文件夹路径没必要放在 for 语句中处理,直接用 %cd% 获取即 ...

这代码确实精简,一看就是老手。

虽然还能再少两层括号,但那样就失去易读性了
 楼主| Tiana丶Tiana 发表于 2024-4-22 14:22
namejm 发表于 2024-4-22 12:51
感觉楼主的代码还可以再优化一下:
1、获取当前文件夹路径没必要放在 for 语句中处理,直接用 %cd% 获取即 ...

感谢指导与优化,对BAT脚本,我不是很精通哈。
 楼主| Tiana丶Tiana 发表于 2024-4-22 14:50
eenny820 发表于 2024-4-22 13:22
bat的脚本可以写入到VB.NET么?

可以内嵌
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 17:08

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表