2015-10-14 56 views
0

有人能告诉我shell命令的.cmd等效命令find -o -samefile吗?等同于在.cmd中查找-o(shell)

我想循环内部文件夹将文件复制到不同的位置。

我的原始shell脚本是: for qapi_file in find . -type d -iname qapi_export -o -samefile qapi/common -o -samefile core/api;请执行cp -p $ qapi_file/qapi * .h include/qapi/

我试过这样做: FOR/d %% i IN(DIR -i qapi_export qapi \ common \ core \ api)do(xcopy/O%i%\ qapi * .h include \ qapi)

这不符合我的预期。如果我使用作为/ d,它会循环一次,并且不会返回要复制的文件。另一方面,如果我使用for/r for循环变得无穷无尽,我无法打破循环(我尝试使用goto:eof为此,但它给出了一个错误 - goto在这里意外)

I我对此很新,并且不确定如何进一步进行。我将不胜感激任何投入在这方面

回答

0

使用%%我代替%I%,并通过与/ R所有子目录循环将这样的伎俩:

for /r . %%i in (.) do (
    xcopy /y/o %%i\qapi_export\qapi*.h include\qapi 
    xcopy /y/o %%i\qapi\common\qapi*.h include\qapi 
    xcopy /y/o %%i\core\api\qapi*.h include\qapi 
) >nul