【发布时间】: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”并抱怨文件。你试过“/Donly”吗? -
@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