如何复制从文件对话框中选择的文件,然后重命名复制的文件,所有这些都在一个批处理脚本中?

如何复制从文件对话框中选择的文件,然后重命名复制的文件,所有这些都在一个批处理脚本中?

我正在尝试使用批处理脚本半自动化地设置我的 Nintendo 电子阅读器 .sav 文件(但是,该文件不必具有 .sav 文件扩展名)。我使用的非自动化方法是按以下顺序执行以下操作:

  1. 查找文件。
  2. 将文件复制到与电子阅读器(美国).gba(我的 Nintendo 电子阅读器 BIOS)。
  3. 将文件的新副本重命名为电子阅读器(美国).sav因此它可以与我选择使用该文件的程序一起使用,该程序的文件名为visualboyadvance-m.exe
  4. 加载电子阅读器(美国).gba在程序中,通过拖动文件电子阅读器(美国).gba到程序中。

半自动化方式将按以下顺序进行:

  1. 打开批处理脚本。
  2. 选择一个文件。
  3. 该脚本将文件复制到与电子阅读器(美国).gba
  4. 该脚本将文件副本重命名为电子阅读器(美国).sav。这个文件的新名称已固定到脚本中。
  5. 脚本打开电子阅读器(美国).gba,以及文件。

我希望我的脚本具有以下两个功能:

  1. 它可以在任何地方执行而无需修改,无论模拟器位于脚本的上级目录还是下级目录。例如,上级目录将是 C:\Script directory\Save directory,而下级目录将是 C:\Save directory\Script directory。
  2. 该文件可以与脚本位于不同的目录中,但必须与脚本位于同一目录中电子阅读器(美国).gba

我的代码允许在文件对话框中选择一个文件并打开电子阅读器(美国).gba在程序中,但甚至不能复制文件,而是给了我一个该系统找不到指定的路径。错误。这是重现复制文件时出现的问题的代码,并通过说出所选文件的完整路径以及当前目录来调试该问题:

@echo off
set d="about:<input type=file id=FILE><script>FILE.click();new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).WriteLine(FILE.value);close();resizeTo(0,0)</script>"
for /f "tokens=*delims=" %%p in ('mshta.exe %d%')do set "f=%%p
echo Selected file: "%f%
echo Current directory: "%cd%
copy "%f%" "e-Reader (USA).sav
start "" visualboyadvance-m.exe "e-Reader (USA).gba"
pause

相关内容