Как я могу переименовать несколько папок и вложенных файлов с помощью пакетного скрипта?

643
Mr. Mendelli

Я делаю инструмент очистки, который будет удалять и переименовывать некоторые указанные каталоги и файлы. Я могу по отдельности переименовывать и удалять каталоги и файлы, но я не могу переименовывать более одной папки и не могу переименовывать файлы в подкаталогах. Вот мой сценарий:

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 

Как вы можете видеть, я хочу переименовать 32-битный исполняемый файл в каталоге x86 bin_x86.exe, затем переименовать его содержащую папку из x86в 32bit, а затем в тот же эквивалент для 64-битного двоичного файла и каталога. В настоящее время мой скрипт может успешно переименовать первую определенную папку (но не двоичную), а не вторую или двоичную папку.

1
У вас есть некоторые опечатки там - "RANAME" paradroid 6 лет назад 1
Ой, спасибо, что заметили это. Мой сценарий на самом деле не содержит опечатку, поэтому он не влияет на результаты ... Mr. Mendelli 6 лет назад 0

1 ответ на вопрос

1
paradroid

Команда 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" 
Более подробная информация здесь: https://ss64.com/nt/ren.html paradroid 6 лет назад 0

Похожие вопросы