Thanks for your comment, you're right, I submit Bug 48816 to describe the problem. And may I need to submit a patch to make explorer ignore all unrecognizing args?

At 2020-03-26 11:52:59, "Zhiyi Zhang" <zzhang@codeweavers.com> wrote:

+        else if (wcsncmp(p, arg_cd, ARRAY_SIZE( arg_cd ))==0)
+        {
+            p += ARRAY_SIZE( arg_cd );
+            p = copy_path_string(parameters->selection,p);
This is wrong. What if there are other options following it? What is the problem exactly?
Please open a bug report for this.

Actually, I don't think /cd is a valid option. I can't find any documentation about
it anywhere. It's also not listed in https://www.geoffchappell.com/studies/windows/shell/explorer/cmdline.htm.
On Windows, you can even run 'explorer /nonsense' and open the explorer window.
So it's more likely to be ignoring all unrecognizable options. 
+        }
         else
         {