有人能告诉我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在这里意外)
我对此很陌生,不确定如何继续前进。我将不胜感激这方面的任何意见
答案 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