我一直在寻找一个批处理文件,它可以为第一列中某个位置的所有文件夹名称和相邻列中该文件夹中的.xxx文件制作电子表格 最后我想有一个报告,在第一列中有文件夹名称,在每一行中该文件夹中有相应的.xxx文件名
e.g。假设folder_main有f1,f2等,每个文件夹都有g1.xx,g2.xxx等等 所以报告应该显示
column1 column 2 column 3 ............
f1 g1.xxx g2.xxx .....
f2 h1.xxx.......
请你帮我写一个批处理文件或vb中的脚本来执行这个功能。我有数千个文件夹。
答案 0 :(得分:0)
以下是创建CSV样式输出的起点。您应该可以在任何电子表格程序中打开它。
@ECHO OFF
SETLOCAL EnableDelayedExpansion
FOR /F "delims=" %%A IN ('DIR /AD /B 2^> NUL') DO (
SET line="%%A"
FOR /F "delims=" %%B IN ('DIR %%A\*.xxx /B 2^> NUL') DO SET line=!line!,"%%B"
ECHO !line!
)
我不知道你对批量脚本有多了解,所以我暂时保留原样。但是,请随时询问是否有不明确的事情。
编辑:
需要EnableDelayedExpansion
才能使!
- 内容有效(见下文)。
第一个FOR
- 行循环遍历当前目录中的所有子目录,并抛弃所有可能的错误消息。最后一行中DO (
和)
之间的内容将针对每个找到的子目录执行。
line
- 变量将在第二个FOR
- 循环结束后保存所有文件。它是用子目录的名称初始化的,即CSV输出中的第一列。
第二个FOR
- 循环在第一个循环中找到的子目录中查找扩展名为xxx
的所有文件,并再次丢弃可能的错误消息。 SET
将文件名相互附加。
使用!
代替您可能熟悉的%
。它将延迟扩展应用于代码(如果您想在命令行上获得有关此运行SET /?
的更多信息)。
如果您想更深入地了解目录结构,则需要在第一个循环中将/S
添加到DIR
- 命令,例如'DIR /AD /B /S 2^> NUL'
。