【问题标题】:Directory list of only first 2 subfolders仅前 2 个子文件夹的目录列表
【发布时间】:2020-08-24 20:21:44
【问题描述】:

我需要一个仅包含我们其中一台服务器上前 2 个子文件夹的目录列表。所以,如果我们的网络是"S:\sub1\sub2\sub3\sub4",我需要在目录列表中使用"S:\sub1\sub2"

我有Tree Size professionalKarens Dir Printcmd 提示。我也可以创建一个.bat 文件,只是不懂语言。

请帮忙:)

【问题讨论】:

  • 你能澄清一下你的意思吗:“我需要在目录列表中S:\sub1\sub2。”你想看到这个结构中的文件,还是只看到具体路径?
  • 我的意思是我只想要路径。我的最终产品应该是 .txt 文件中的目录列表,其中包含我们服务器上的前 2 个文件夹。
  • 好的,所以我需要确定你想如何到达那条路径。是什么阻止您只在文本文件中定义"S:\sub1\sub2"?或者你有什么东西在树中运行得更高,你需要路由回子目录?
  • 不行,网络上第一个文件夹是客户端名,第二个文件夹是项目名。可能有 150 个客户,在这些文件夹中,每个客户有几个项目。我只需要一个列出所有客户端和项目的 .TXT 文件,如下所示: S:\client1\projectA S:\client1\projectB S:\client1\projectC S:\client2\projectA S:\client2\projectB
  • 对不起 Gherard,我以前没有使用过 stackflow,也不知道如何在我的评论中给出硬回报。每次有一个 S:\ 时,该目录都应该在一个新行上。我知道我可以通过使用 /dir 命令在 CMD 中执行此操作,但这给了我所有文件夹,我只想要前 2 个。

标签: batch-file cmd subdirectory


【解决方案1】:

您可以利用 中的/Lev:n 选项。

直接在内:

"%__AppDir__%Robocopy.exe" S:\ Null /L /Lev:3 /NFL /NJH /NJS /NC /NS /S /XJ 2> NUL 1> "listing.txt"

或者,来自

@"%__AppDir__%Robocopy.exe" S:\ Null /L /Lev:3 /NFL /NJH /NJS /NC /NS /S /XJ 2> NUL 1> "listing.txt"

如果您对前导空格不满意,只需通过带有/F 选项的 运行它,默认情况下使用空格和制表符作为分隔符。只需获取所有标记,结果中将省略前导的并发分隔符。

直接在内:

(For /F Tokens^=* %G In ('""%__AppDir__%Robocopy.exe" S:\ Null /L /Lev:3 /NFL /NJH /NJS /NC /NS /S /XJ 2>NUL"')Do @Echo %G)>"listing.txt"

或者,来自

@(For /F Tokens^=* %%G In ('""%__AppDir__%Robocopy.exe" S:\ Null /L /Lev:3 /NFL /NJH /NJS /NC /NS /S /XJ 2>NUL"')Do @Echo %%G)>"listing.txt"

在上述所有示例中,如果您想要文件名而不是目录名,只需将 /NFL 选项更改为 /NDL

【讨论】:

  • 我没有看到发帖人在这个问题上的努力。
  • 同意@AdminOfThings。我这次的理由是我在 OP 已经在 cmets 中收到了解决方案之后发布了它,并且对此感到满意。没有现有的接近投票,因此对于未来的搜索者/读者,我提供了一个答案,它以不同的方式执行类似的任务。正如我在您之前的回答中所说,是否回答问题、离题或其他问题由您决定。投反对票的决定也是你的。随意投反对票,并仔细阅读我以前的每个答案,如果你真的想这样做,(会有很多)
猜你喜欢
  • 1970-01-01
  • 2011-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-06
相关资源
最近更新 更多