}\r
Status = ShellOpenFileMetaArg((CHAR16*)ShellCommandLineGetRawValue(Package, LoopCounter), EFI_FILE_MODE_WRITE|EFI_FILE_MODE_READ, &FileList);\r
if (EFI_ERROR(Status) || FileList == NULL || IsListEmpty(&FileList->Link)) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_FILE_NF), gShellLevel2HiiHandle, ShellCommandLineGetRawValue(Package, 1));\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_FILE_NF), gShellLevel2HiiHandle, ShellCommandLineGetRawValue(Package, LoopCounter));\r
ShellStatus = SHELL_NOT_FOUND;\r
}\r
}\r
- //\r
- // now copy them all...\r
- //\r
- if (FileList != NULL && !IsListEmpty(&FileList->Link)) {\r
- ShellStatus = ProcessValidateAndCopyFiles(FileList, ShellCommandCleanPath((CHAR16*)ShellCommandLineGetRawValue(Package, ParamCount)), SilentMode, RecursiveMode);\r
+ if (ShellStatus != SHELL_SUCCESS) {\r
Status = ShellCloseFileMetaArg(&FileList);\r
- if (EFI_ERROR(Status) && ShellStatus == SHELL_SUCCESS) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_ERR_FILE), gShellLevel2HiiHandle, ShellCommandLineGetRawValue(Package, 1), ShellStatus|MAX_BIT);\r
- ShellStatus = SHELL_ACCESS_DENIED;\r
+ } else {\r
+ //\r
+ // now copy them all...\r
+ //\r
+ if (FileList != NULL && !IsListEmpty(&FileList->Link)) {\r
+ ShellStatus = ProcessValidateAndCopyFiles(FileList, ShellCommandCleanPath((CHAR16*)ShellCommandLineGetRawValue(Package, ParamCount)), SilentMode, RecursiveMode);\r
+ Status = ShellCloseFileMetaArg(&FileList);\r
+ if (EFI_ERROR(Status) && ShellStatus == SHELL_SUCCESS) {\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_ERR_FILE), gShellLevel2HiiHandle, ShellCommandLineGetRawValue(Package, ParamCount), ShellStatus|MAX_BIT);\r
+ ShellStatus = SHELL_ACCESS_DENIED;\r
+ }\r
}\r
}\r
-\r
break;\r
} // switch on parameter count\r
\r