【问题标题】:How to only access one additional subdirectory and access their files utilizing batch?如何只访问一个额外的子目录并使用批处理访问他们的文件?
【发布时间】:2019-06-17 16:16:26
【问题描述】:

我通常使用 Java 进行编程,但由于我没有具体说明的原因,我正在尝试使用批处理脚本来解决问题。我有几个目录,其中包含天的子目录。例如,我可能有一个名为 January 的文件夹,该文件夹内是每天的文件夹(1、2、3 等),而这些文件夹内是我需要访问的文本文件。但是,这些数据会不断更新,所以我从来没有固定数量的文件夹。我想知道如何通过批处理脚本访问所有“day”文件夹?

我一直在尝试通过在 for 循环中使用 /d /r 命令来遍历目录并找出整个文件夹(即月份文件夹)中的文件夹。然而,这只给了我目录中的文件。

我尝试过的一些代码 sn-ps 是:

FOR /D /r %%P IN (..\JAN\Processed\) DO (
copy filex.txt ..\JAN\Processed\%%~nxP
/* run a correlation program using the file located in the directory specified with the copy command */
)

我也试过

for /r "..\JAN\Processed\" %%P in (.) do (/*similar to code above*/)

当我运行此代码时,它将访问每个目录,而不仅仅是我想要的目录(因为我在“day”文件夹中有其他目录)。

为了测试我的代码,我也经常使用ECHO 命令,只是为了看看它是否真的通过输入echo %%~nxP 找到了我需要的目录,但它似乎没有找到我想要访问的目录.它只会返回ECHO IS ON/OFF。非常感谢您的帮助。

【问题讨论】:

  • 您尝试了“/Dictories /Recursive”并抱怨太深,而您仅尝试了“/Recursive”并抱怨文件。你试过“/D only”吗?
  • @Stephan 仅使用 '/D' 会导致 echo 语句仅打印出命令窗口正在访问的当前目录。甚至里面的文件夹/文件都没有。使用上面的示例,它只会回显“已处理”
  • 获取for /d 以获取子文件夹(仅深度=1)和第二个嵌套for 以获取该子文件夹中的文件:@for /d %%P in ("..\JAN\Processed\*") do @for %%F in ("%%~fP\*") do @echo %%~fF

标签: batch-file subdirectory getdirectories


【解决方案1】:

获取for /d 以获取子文件夹(仅深度=1)和第二个嵌套用于获取该子文件夹中的文件:

@echo off
for /d %%P in ("..\JAN\Processed\*") do (
  for %%F in ("%%~fP\*") do echo %%~fF
)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-07
    • 1970-01-01
    • 2015-07-24
    • 2017-01-06
    • 1970-01-01
    • 2021-03-11
    相关资源
    最近更新 更多