bat怎么获取文件夹内文件名称,以及子文件夹内文件名称?

@echo offrem 获取多个文件去除后缀名/不带扩展名的名称输出到一个txt文本文件cd /d "%~dp0"set "outfile=1111111.txt"(for /f "delims=" %%a in ('dir /a-d-h/b') do (if /i "%%~nxa" neq "%~nx0" echo;%%~na))>"%outfile%"目前的代码只能获取文件夹内的文件名,获取不了子文件夹内的文件名。bat怎么获取文件夹内文件名称,以及子文件夹内文件名称。最好形成如下txt格式根目录:文件名1文件名2子文件夹1名称文件名1文件名2子文件夹2名称文件名1文件名2

如图、;我想获取所有文件名称,以及子文件夹内文件名称。

tree命令列目录

为什么不直接用tree命令,还能显示目录树结构。


C:\>tree /?

以图形显示驱动器或路径的文件夹结构。

TREE [drive:][path] [/F] [/A]

   /F   显示每个文件夹中文件的名称。

   /A   使用 ASCII 字符,而不使用扩展字符。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-09-18
dir命令加上/s这个参数就可以获取子目录中的文件名了。要想得文件夹名,那么dir命令中/a-d改成/ad,如果同时获得,请直接去除-d这个参数。追问

通过tree命令得到图2,怎么将图1的代码修改,删除后缀.jpg和每段前面的分割符号

第2个回答  2021-09-17
不清楚你的实际文件/情况,仅以问题中的样例/说明为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起双击运行
/*&cls&echo off&mode con lines=5000
rem 获取当前文件夹下所有文件的名称
set #=Any question&set _=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%_% %z%
cd /d "%~dp0"
dir /a-d/b/s|find /i /v "%~nx0"|cscript -nologo -e:jscript "%~f0" "%~dp0"
echo;%#% +%$%%$%/%_% %z%
pause
exit
*/
var len=WSH.Arguments(0).length;
while(!WSH.StdIn.AtEndOfStream){
var it=WSH.StdIn.ReadLine().replace(/\.[^\.\\]+$/,'');
WSH.StdErr.WriteLine(it.substring(len));
}
相似回答