我试图让批处理文件只将文件夹和子文件夹的短名称输出到文件中。但是,通过下面的例子,我只能得到完整路径。
DIR /S /B /O:N /A:D > FolderList.txt
它将输出:
X:\Example\Folder 1
X:\Example\Folder 2
X:\Example\Folder 3
X:\Example\Folder 1\Sub-Folder 1
X:\Example\Folder 1\Sub-Folder 2
X:\Example\Folder 2\Sub-Folder 1
当所需输出为:
Folder 1
Folder 2
Folder 3
Folder 1\Sub-Folder 1
Folder 1\Sub-Folder 2
Folder 2\Sub-Folder 1
这个问题伴随着
/S
开关,它允许DIR
命令递归到子文件夹中。有没有一种简单的方法,只使用windows批处理文件,将当前目录中的文件夹和子文件夹列表输出到文本文件?
最佳答案
@ECHO OFF
FOR /f "delims=" %%a IN ('DIR /S /B /O:N /A:D') DO (
SET "name=%%a"
SETLOCAL ENABLEDELAYEDEXPANSION
ECHO(!name:%cd%\=!
endlocal
)
GOTO :EOF
因为你要的是“短名字”,然后描述的是“相对名字”,所以让人有点困惑。
很明显,name只是屏幕上的
echo
ed。你知道如何重定向。关于windows - Windows批处理文件-显示所有文件夹和子文件夹的相对路径,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40695211/