- ShellStatus = ShellCommandRunDisconnect(ImageHandle, SystemTable);\r
- if (ShellStatus == SHELL_SUCCESS) {\r
- ShellStatus = ShellCommandRunConnect(ImageHandle, SystemTable);\r
- }\r
+ Status = CommandInit();\r
+ ASSERT_EFI_ERROR(Status);\r
+\r
+ //\r
+ // parse the command line\r
+ //\r
+ Status = ShellCommandLineParse (ParamList, &Package, &ProblemParam, TRUE);\r
+ if (EFI_ERROR(Status)) {\r
+ if (Status == EFI_VOLUME_CORRUPTED && ProblemParam != NULL) {\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellDriver1HiiHandle, ProblemParam);\r
+ FreePool(ProblemParam);\r
+ ShellStatus = SHELL_INVALID_PARAMETER;\r
+ } else {\r
+ ASSERT(FALSE);\r
+ }\r
+ } else {\r
+ ShellStatus = ShellCommandRunDisconnect(ImageHandle, SystemTable);\r
+ if (ShellStatus == SHELL_SUCCESS) {\r
+ if (ShellCommandLineGetFlag(Package, L"-r")) {\r
+ ConnectAllConsoles();\r
+ }\r
+ ShellStatus = ShellCommandRunConnect(ImageHandle, SystemTable);\r
+ }\r
+ } \r