命令行循环遍历所有文件夹并执行命令

时间:2014-04-25 14:45:55

标签: batch-file cmd

我想创建一个Windows批处理文件" compile.bat"循环遍历"工作区内的所有子文件夹"为了下载人员,执行#34; .metadata",然后执行" mvn clean install"在那里。我也希望它能找到带有" .jar"的文件。 extension(地图中唯一的文件" target"在该文件夹中)并强制将其复制到固定目录。所以如果我的地图结构是这样的:

-eclipse
-maven
-some other folders and files
-compile.bat
-workspace
  -.metadata
  -someFolder
   -target
    -randomFolders
    *someName.jar
  -someOtherFolder
   -target
    -moreRandomFolders
    *someOtherName.jar

它必须这样做:

cd workspace
cd someFolder
mvn clean install
::copy someName.jar to fixed map
cd ..
cd someOtherFolder
mvn clean install
::copy someNameOther.jar to fixed map
cd ..

怎么做?

编辑:这是我最终使用的内容:

for /F %%p in ('dir /ad /b workspace') do (
  echo.%%p | findstr /I "metadata" 1>nul
  if errorlevel 1 (
    echo Whatever, I can do what I want %%p
    cd workspace/%%p
    mvn clean install
    cd target
    for /r %%i in (*.jar) do (
      echo %%i
      copy "%%i" "../../../CraftBukkit/target/plugins" /Y
    )
    cd ../../..
  )
)

1 个答案:

答案 0 :(得分:1)

请尝试以下代码:

for /F %%p in ('dir /ad /b workspace') do (
  echo.%%p | findstr /I "metadata" 1>nul
  if errorlevel 1 (
    echo Whatever, I can do what I want %%p
    cd %%p
    mvn clean install
    cd ..
  )
)