지정된 일부 디렉터리와 파일을 삭제하고 이름을 바꾸는 정리 도구를 만들고 있습니다. 저 할 수 있어요개별적으로디렉터리와 파일의 이름을 바꾸고 삭제하지만 두 개 이상의 폴더 이름을 바꿀 수 없으며 하위 디렉터리 내의 파일 이름도 바꿀 수 없습니다. 내 스크립트는 다음과 같습니다.
if not exist Plugin mkdir Plugin
RENAME "xml" "XML"
RENAME "x64\bin.exe" "x64\bin_x64.exe"
RENAME "x64" "64bit"
RENAME "x86\bin.exe" "x86\bin_x86.exe"
RENAME "x86" "32bit"
rmdir Licenses /s /q
del bin_old.exe
del bin.exe.bak
del README.md
del license.txt
del components.xml
del InstallationLog.txt
del maintenancetool.dat
del maintenancetool.exe
del maintenancetool.ini
del maintenancetool.zip
del network.xml
보시다시피, x86 디렉터리 내의 32비트 실행 파일 이름을 로 바꾸고 , 포함된 폴더의 이름을 에서 로 bin_x86.exe
바꾸고 , 64비트 바이너리와 디렉터리에 대해 동일한 이름을 지정하고 싶습니다. 현재 내 스크립트는 첫 번째 정의된 폴더의 이름을 성공적으로 바꿀 수 있습니다.x86
32bit
(그러나 바이너리는 아닙니다), 두 번째 폴더나 바이너리가 아닙니다.
답변1
RENAME 명령은 하위 디렉터리 내에서 작동할 수 없으므로 cd
파일 이름을 바꾸기 전에 배치 스크립트 내의 디렉터리로 이동하는 것이 쉬운 해결책입니다.
cd x64
RENAME "bin.exe" "bin_x64.exe"
cd ..
RENAME "x64" "64bit"
cd x86
RENAME "bin.exe" "bin_x86.exe"
cd ..
RENAME "x86" "32bit"