如何在批次腳本中複製從文件對話框中選擇的文件,然後重命名複製的文件?

如何在批次腳本中複製從文件對話框中選擇的文件,然後重命名複製的文件?

我正在嘗試使用批次腳本半自動設定我的任天堂電子閱讀器 .sav 檔案(但是,該檔案不必具有 .sav 檔案副檔名)。我使用的非自動化方法是按以下順序執行以下操作:

  1. 找到一個文件。
  2. 將檔案複製到同一目錄電子閱讀器(美國).gba(我的任天堂電子閱讀器 BIOS)。
  3. 將文件的新副本重新命名為電子閱讀器(美國).sav所以它適用於我選擇使用該文件的程序,該程序的文件名稱是Visualboyadvance-m.exe
  4. 載入電子閱讀器(美國).gba在程式中,與文件一起拖曳電子閱讀器(美國).gba到程序。

半自動方式將依下列順序執行以下操作:

  1. 開啟批次腳本。
  2. 選擇一個檔案。
  3. 該腳本將文件複製到與電子閱讀器(美國).gba
  4. 該腳本將檔案的副本重新命名為電子閱讀器(美國).sav。該文件的新名稱已固定到腳本中。
  5. 腳本打開電子閱讀器(美國).gba,以及文件。

我希望我的腳本有以下兩個功能:

  1. 它可以在任何地方執行而無需修改,無論模擬器位於腳本的上級目錄還是下級目錄。例如,較高的目錄將類似於 C:\Script 目錄\Save 目錄,而較低的目錄將類似於 C:\Save 目錄\Script 目錄。
  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

相關內容