如何在Windows批处理文件中遍历指定的子文件夹?

时间:2013-03-23 16:07:21

标签: for-loop batch-file cmd


这是我的文件夹层次结构:

[编号]
[数/ 12545]
[数/ 12545的/ dev]
[数/ 12545 / PROD]

[数/ 32445]
[数/ 32445的/ dev]
[数/ 32445 / PROD]

...

[数/ .....]
[数/...../ dev的]
[数/...../ PROD]

我想在只有“[Numbers /...../ dev]”文件夹下复制一些文本文件。我应该怎么做? 我尝试了下面的代码并且它不起作用,因为它在所有子文件夹下进行coppies。

for /r %NUMBER_DIRS% %%d in (.) do (
    copy %PROJECT_INPUTS%\*.txt "%%d"
)

感谢。

2 个答案:

答案 0 :(得分:1)

试试这个:

for /d /r "%NUMBER_DIRS%" %%d in (*DEV) do copy "%PROJECT_INPUTS%\*.txt" "%%~d\*.txt"

答案 1 :(得分:1)

@ECHO OFF
SETLOCAL
FOR /f "delims=" %%i IN (
  'dir /s /b /a:d "\numbers" ^| findstr /i /e "\dev"'
  ) do ECHO COPY %PROJECT_INPUTS%\*.txt "%%i\"

这将报告批次 PROPOSES 要执行的操作。在ECHO之前删除COPY关键字以执行副本。

注意:如果您希望 OVERWRITE 目标目录中的现有文件,则可能需要将/y添加到复制选项。

我认为您正在复制 FROM %PROJECT_INPUTS% TO 许多...\dev目录。