.cmd

时间:2015-10-14 08:06:20

标签: linux windows shell command-line

有人能告诉我shell命令的.cmd等效命令find -o -samefile吗?

我正在尝试在文件夹内循环以将文件复制到其他位置。

我原来的shell脚本是: for find . -type d -iname qapi_export -o -samefile qapi/common -o -samefile core/api中的qapi_file;做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)

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

我对此很陌生,不确定如何继续前进。我将不胜感激这方面的任何意见

1 个答案:

答案 0 :(得分:0)

使用%% i而不是%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