2014-04-25 82 views
0

我想创建一个windows批处理文件“compile.bat”,该文件将“工作空间”内的所有子文件夹循环“folmet”.metadata“,然后执行”mvn clean install “ 在那里。我也希望它能找到带有“.jar”扩展名的文件(该文件夹内的“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

请尝试以下代码:

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 .. 
) 
) 
+0

我试了一下,略作修改后,它的工作原理。我改变了:'cd %% p'到'cd workspace/%% p'和'cd ..'到'cd ../ ..'但是我用另一个问题更新了OP – L0laapk3