For loop 在批处理文件中使用for循环将命令仅应用于子目录的第一级

For loop 在批处理文件中使用for循环将命令仅应用于子目录的第一级,for-loop,batch-file,dos,For Loop,Batch File,Dos,我有一个包含大量子目录的目录,我想对每个子目录应用一个命令(一个在其中创建更多子目录的命令)我的问题是如何制定FOR循环,以便它将该命令应用于这些目录中的每个目录,而不将其进一步应用于子目录的子目录 我对此很在行,我已经尝试了很多不同的组合,我所能做的就是在当前工作目录而不是它的子目录上运行命令。我不清楚您是要处理子文件夹,还是要处理grand child文件夹。无论哪种方式,您都需要使用FOR/D 要处理子文件夹,请执行以下操作: @echo off setlocal ::The follo

我有一个包含大量子目录的目录,我想对每个子目录应用一个命令(一个在其中创建更多子目录的命令)我的问题是如何制定FOR循环,以便它将该命令应用于这些目录中的每个目录,而不将其进一步应用于子目录的子目录


我对此很在行,我已经尝试了很多不同的组合,我所能做的就是在当前工作目录而不是它的子目录上运行命令。

我不清楚您是要处理子文件夹,还是要处理grand child文件夹。无论哪种方式,您都需要使用FOR/D

要处理子文件夹,请执行以下操作:

@echo off
setlocal

::The following sets the root to the current directory.
::But root could be set to any path you choose
set "root=."

pushd "%root%"
for /d %%F in (*) do (
  rem %%F now contains a child folder.
  rem You could make a subdirectory easily enough
  md "%%F\newFolder"
)
@echo off
setlocal

::The following sets the root to the current directory.
::But root could be set to any path you choose
set "root=."

pushd "%root%"
for /d %%A in (*) do (
  rem %%A now contains a child folder.
  pushd "%%A"
  for /d %%B in (*) do (
    rem %%B now contains a grandchild folder
    rem You can easily create a new folder
    md "%%B\newFolder"
  )
  popd
)
要处理孙子文件夹,请执行以下操作:

@echo off
setlocal

::The following sets the root to the current directory.
::But root could be set to any path you choose
set "root=."

pushd "%root%"
for /d %%F in (*) do (
  rem %%F now contains a child folder.
  rem You could make a subdirectory easily enough
  md "%%F\newFolder"
)
@echo off
setlocal

::The following sets the root to the current directory.
::But root could be set to any path you choose
set "root=."

pushd "%root%"
for /d %%A in (*) do (
  rem %%A now contains a child folder.
  pushd "%%A"
  for /d %%B in (*) do (
    rem %%B now contains a grandchild folder
    rem You can easily create a new folder
    md "%%B\newFolder"
  )
  popd
)

继续你的问题,展示一个不起作用的例子。同时展示你期望的结果和你得到的结果。一旦您的需求明确,这听起来是一个非常简单的问题。