For example, I have all tumor samples from batch1 and all normal samples from batch2. How do I perfrom batch correction here?
In my case, where group (tumor vs. normal) and batch (batch 1 vs. batch 2) are fully confounded, traditional batch correction methods like ComBat or limma's removeBatchEffect may struggle. Michael Love
You cannot do any correction. That's the simple and only answer. You cannot distinguish true biological effect from unwanted technical variation. If this is your own data you generated then you should have addressed this during experimental planning, and if it is downloaded data then you really should consider not to conduct such analysis, for aforementioned reasons.