我有一个根文件夹" ROOT" 里面有一个带日期的文件夹,每个文件夹都有子文件夹 我想获得每个文件夹的列表,其中包含子文件夹的名称但没有路径,保存到txt文件到csv,但文件的名称将是文件夹名称。例如,如果文件夹是" 1.1" " 2.1"并且里面的子文件夹是" sub1,sub2和co 我有一个名为1.1.txt的文本文件,包含sub1,sub2,2.1.txt等等 文件夹结构内部就像这样
1.1
2.1
1.Sub folder1b
1.Sub folder2b
这是我到目前为止所拥有的
for %%G in (.) do set curpath=%%~nxG
dir /b /s /a:d >%curpath%.txt
所以我得到一个文件,其中包含当前文件夹名称和所有子文件夹,但带有我不想要的路径。 而且我也不想在一个文件中我想知道每个文件夹中的确切子文件夹。 考虑以某种方式保存它以使用每个文件夹中的文件夹列进行优秀是真正的帮助,这是我真正需要的
答案 0 :(得分:1)
:: Q:\Test\2017\09\08\SO_46118986.cmd
@Echo off
CD /D A:\Root
for /R %%A in (.) Do (
PushD "%%A"
Del "%%~nxA.txt" >Nul 2>&1
For /F "delims=" %%B in (
'Dir /B/AD 2^>Nul ^|Find /V ""'
) Do Echo:%%~nxB >>"%%~nxA.txt"
PopD
)
For /r
的(.)
枚举所有(子)目录。请参阅for /?
或阅读for /r。Pushd/Popd
进入目录并在堆栈上存储位置/恢复以前的位置。>NUL 2>&1
会抑制可能的错误消息。For /f
with(' command')解析命令的输出。请参阅for /?
或阅读for /f。"delims="
将导致默认分隔符空间无分裂。模拟树结构上的示例输出:
> tree . /F
ROOT
│ root.txt
│
├───1.1
│ │ 1.1.txt
│ │
│ ├───Sub folder 1a
│ └───Sub folder 2a
└───2.1
│ 2.1.txt
│
├───Sub folder 1b
└───Sub folder 2b
> for /r %A in (*.txt) Do type %A
> type .\root\root.txt
1.1
2.1
> type .\root\1.1\1.1.txt
Sub folder 1a
Sub folder 2a
> type .\root\2.1\2.1.txt
Sub folder 1b
Sub folder 2b