bat命令 遍历目标文件夹下的所有文件,并输出文件名,如果是在子文件夹下,则还要输出文件夹的名字
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bat命令 遍历目标文件夹下的所有文件,并输出文件名,如果是在子文件夹下,则还要输出文件夹的名字相关的知识,希望对你有一定的参考价值。
列 - 结构:
A\B\c.txt
A\e.txt
输出
B
c.text
e.text
例如这样的多层子目录
A\D\E\F.txt 参考技术A ::获取本级文件夹名称和它子集文件名称放入ab列
::获取日期,防止生成文件与源目录文件发生冲突
@echo off
set datevar=%date:~0,4%%date:~5,2%%date:~8,2%
set timevar=%timevar%%time:~3,2%%time:~6,2%
set path=%~dp0
rem 获取文件夹名称
for /f "delims=" %%a in ('dir /b/ad') do (
rem 拼加下个参数路径
echo %%a
rem 获取子集中目录文件名称
for /f "tokens=1-3 delims=" %%b in ('dir /b/od %path%%%a') do echo %%a,%%b%%c%%d>>%datevar%%timevar%.csv
)
pause
我以前写过的 缺点是我还不知道
不过我只写了遍历两层,一层文件夹,一层文件名。不过我有个笨方法,
dir /b/s>>1.csv你可以把>>1.csv删掉,这个就很直接了没有美化过的,出来的数据是盘符加路径加文件名,一堆,我把它放进excel中替换顺便分列处理数据
完全不懂bat。求给完整代码。
追答比如tree c:\
没什么可讲的,会形成一个树形列表。实在不懂打tree /? 所有命令打/?都是帮助,打>都是导出。比如tree c:\abc > 1.txt 会将结果保存到1.txt里
百度了一下,tree完全不是我想要的效果啊。
我想要的是for遍历,然后单独输出子目录名,与文件名,因为我还需要单独进行一些操作。
那批处理做不到了,你自己写代码吧
追问我细想了一下,想到了解决办法。
我能通过for路径得到子目录的文件夹名。
然后用这个文件夹名+工作路径遍历子目录文件夹,得到需要的文件名。
这样就能得到文件夹的名字+文件名了。
行,满足你的需求就行
以上是关于bat命令 遍历目标文件夹下的所有文件,并输出文件名,如果是在子文件夹下,则还要输出文件夹的名字的主要内容,如果未能解决你的问题,请参考以下文章
DOS命令(bat批处理脚本)遍历目录遍历子目录下的文件遍历数字和遍历文件内容