有人能告诉我shell命令find-o-samefile的.cmd等价命令吗?
我正在尝试在文件夹中循环以将文件复制到其他位置。
我最初的shell脚本是:
对于find . -type d -iname qapi_export -o -samefile qapi/common -o -samefile core/api中的qapi_文件,请执行cp-p$qapi_file/qapi*.h include/qapi/
我试过这样做:
对于/d%%i IN(DIR-i qapi_export qapi\common\core\api)d O(xcopy/O%i%\qapi*.h include\qapi)
这并不像我期望的那样有效。如果我使用for/d,它只循环一次,不返回要复制的文件。另一方面,如果我使用for/r,for循环将变得无止境,并且无法中断循环(我尝试使用goto:eof进行此操作,但它给出了一个错误-goto在这里是意外的)
我对这件事还不太熟悉,也不知道该如何继续下去。我希望在这方面有任何意见

最佳答案

使用%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

关于linux - 与.cmd中的find -o(shell)等效,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33119922/

10-13 08:59