파일 대화 상자에서 선택한 파일을 복사한 다음 복사된 파일의 이름을 모두 하나의 배치 스크립트로 바꾸려면 어떻게 해야 합니까?

파일 대화 상자에서 선택한 파일을 복사한 다음 복사된 파일의 이름을 모두 하나의 배치 스크립트로 바꾸려면 어떻게 해야 합니까?

배치 스크립트를 사용하여 Nintendo e-Reader .sav 파일(단, 파일 확장자가 .sav일 필요는 없음) 설정을 반자동화하려고 합니다. 내가 사용하는 자동화되지 않은 방법은 다음을 순서대로 수행하는 것입니다.

  1. 파일을 찾으세요.
  2. 파일을 다음과 같은 디렉터리에 복사합니다.e-Reader(미국).gba(내 Nintendo e-Reader BIOS).
  3. 파일의 새 복사본 이름을 다음으로 바꿉니다.e-Reader(미국).sav그래서 파일 이름이 다음과 같은 파일을 사용하기로 선택한 프로그램에서 작동합니다.Visualboyadvance-m.exe.
  4. e-Reader(미국).gba프로그램에서 파일과 함께 드래그하여e-Reader(미국).gba프로그램에.

반자동 방식은 다음 순서로 수행하여 작동합니다.

  1. 배치 스크립트를 엽니다.
  2. 파일을 선택하세요.
  3. 스크립트는 파일을 다음과 같은 디렉터리에 복사합니다.e-Reader(미국).gba.
  4. 스크립트는 파일 복사본의 이름을 다음으로 바꿉니다.e-Reader(미국).sav. 파일의 새 이름은 스크립트에 고정됩니다.
  5. 스크립트가 열립니다e-Reader(미국).gba, 파일과 함께.

내 스크립트에 바라는 두 가지 기능은 다음과 같습니다.

  1. 에뮬레이터가 스크립트의 상위 디렉터리에 있든 하위 디렉터리에 있든 관계없이 어디에서나 수정 없이 실행할 수 있습니다. 예를 들어 상위 디렉터리는 C:\Script 디렉터리\Save 디렉터리와 같고 하위 디렉터리는 C:\Save 디렉터리\Script 디렉터리와 같습니다.
  2. 파일은 스크립트와 다른 디렉터리에 있을 수 있지만 스크립트와 동일한 디렉터리에 있어야 합니다.e-Reader(미국).gba.

내 코드를 사용하면 파일 대화 상자에서 파일을 선택하고 열 수 있습니다.e-Reader(미국).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

관련 정보