+static grub_err_t ventoy_cmd_ext_select_img_path(grub_extcmd_context_t ctxt, int argc, char **args)
+{
+ int len = 0;
+ char id[32] = {0};
+ img_info *cur = g_ventoy_img_list;
+
+ (void)ctxt;
+
+ if (argc != 1)
+ {
+ return grub_error(GRUB_ERR_BAD_ARGUMENT, "Usage: %s {var}", cmd_raw_name);
+ }
+
+ len = (int)grub_strlen(args[0]);
+
+ while (cur)
+ {
+ if (len == cur->pathlen && 0 == grub_strcmp(args[0], cur->path))
+ {
+ break;
+ }
+ cur = cur->next;
+ }
+
+ if (!cur)
+ {
+ return grub_error(GRUB_ERR_BAD_ARGUMENT, "No such image");
+ }
+
+ grub_snprintf(id, sizeof(id), "VID_%d", cur->id);
+ grub_env_set("chosen", id);
+ grub_env_export("chosen");
+
+ VENTOY_CMD_RETURN(GRUB_ERR_NONE);
+}
+