【问题标题】:List ONE level subfolder content on external hard disc (PC batch)列出外置硬盘上的一级子文件夹内容(PC 批量)
【发布时间】:2024-01-02 13:22:01
【问题描述】:

我是一名*的摄影师。 在我的电脑(Windows 7)中,我想让一个批处理文件将我的外部硬盘内容列出到一个文件中(只有目录名,而不是文件名)。 但我喜欢列出根文件夹和仅一层子文件夹,最好采用像一个文件夹及其子文件夹,然后是下一个文件夹及其子文件夹等格式。 谢谢

【问题讨论】:

  • 一个你真正想要的例子会有帮助......
  • 不确定,你想要什么。也许tree d:tree d:` does something what you like. Replace d:` 带有正确的驱动器号。要将输出保存到文件中,请键入 tree d: >myfile.txt

标签: batch-file directory command-prompt subdirectory


【解决方案1】:
@echo off
    set "drive=d:"
    for /d %%r in ("%drive%\*") do (
        echo %%~fr
        for /d %%f in ("%%r\*") do echo(       %%~nxf
        echo(
    )

对于驱动器根目录中的每个文件夹,显示文件夹的名称,对于其中的每个文件夹,显示其名称

【讨论】:

  • 是的,这样更好。 @user3074464 在最后一个括号末尾放置一个 >> file.txt 用于输出并设置 "drive=e:"
  • 非常感谢@MC ND!事情就这样搞定了!还要感谢@joojaa!
  • 你应该接受并投票,而不是说thanx,这就是网站的运作方式。
  • 不知道该怎么做?我使用了 MC ND 的答案,我是否设法投票?当试图给@joojaa 投票时,它说“我需要 15 个声望”?
【解决方案2】:

试试这个:

setlocal
set basedir=p:\

FOR /f %%g IN ('dir /B /AD %basedir%') do call :doOneFolder %%g

:doOneFolder foldername
  echo %1
  FOR /f %%g IN ('dir /B /AD %basedir%%1') do echo     %%g

将 basedir 更改为您需要的内容

【讨论】:

  • 感谢您的回答。不幸的是,我的编程知识并没有让我最终确定这一点。所以:我在 E: 上有硬盘,假设批处理在 C: 下,最后我想在 C: 下写一个 txt 文件,其中列出了 E 文件夹的内容。
最近更新 更多