Сценарій DOS для перейменування файлів
Проблема
Я хотів би знати, які пакетні команди я можу використовувати для перейменування файлів у каталозі, який називається gbr1w001data_transfer_gb77 $
INVPRT_5023949000004_20080818061329_0000979.GB ---> 5023949000004_MSG_IN_20080818061329_0000979.GB PPRHDR_5000119000006_20080721061424_00000981.GB_m ---> 5000119000006_MSG_IN_20080721061424_00000981.GB_m SLSRPT_5023949000004_20080721061317_00000978.GB ---> 5023949000004_MSG_IN_20080721061317_00000978.GB
В основному я хотів би скинути 7 символів на початку файлу і вставити MSG_IN_ після наступних 14 символів.
Будь ласка, допоможіть!
Рішення
Для
/ r %% x в (% 1) робити ren "%% x"% 2
Це буде перейменовувати файл рекурсивно :-)
- Збережіть у файлі 2 аргументи з розширення та розширення.
- ex: ім'я файлу test.bat
- Команда: test * .avi * .bmp
Він перейменує всі файли з розширенням avi на bmp (у всіх підпапках).
Рішення 2
Наступний скрипт бітерписів зробить саме це. Щоб завантажити безкоштовну бітерписку, перейдіть на їх веб-сайт за адресою biterscripting.com
Збережіть скрипт у файлі C: /X.txt. Почніть інтерактивний бітершипінг і викличте скрипт так:
скрипт "C: /X.txt" dir ("" gbr1w001 "_transfer_gb77 ") шаблон (" INVPRT_ ")
Всі dir, ім'я файлу, шаблон є прикладами, використовуйте власні.
Ви можете викликати цей сценарій на будь-якому описаному вами шаблоні. Або можна створити основний сценарій, щоб повторно викликати цей сценарій для кожного шаблону. Ви можете зробити це в пакетному режимі, викликавши бітрейспинг
з іншої програми або DOS.
stex = рядок екстрактор, chex = символ extracter, chin = символ вставки, -p = зберегти оригінальний рядок, ] = до і в тому числі, і т.д. Зробіть допомогу з команд, щоб отримати деталі. Це досить потужні команди редактора.
Сена
# ПОЧАТОК СКРИПТУ # Оголосити аргументи введення. var str dir pattern # Зберіть список файлів, що відповідають шаблону. var str list знайти -f $ pattern $ dir> $ list # Список файлів знаходиться у списку $. Процес один за одним. while ($ list "") робити # Отримати наступний файл. var str файл, шлях, old_name, new_name lex "1" $ list> $ file # Видалити шлях. Це дасть нам лише ім'я файлу в $ old_name. stex -p "^ / ^ l [" $ file> $ old_name # Після (але виключаючи) останнього / # Відкинути перші 7 символів. chex -p "7]" $ old_name> $ new_name # Вставити MSG_IN_ після 14 символів. chin "14" "MSG_IN_" $ new_name> null # Ми використовуємо> null, тому що ми не хочемо бачити вихід # Ми хочемо вставити MSG_IN_ в $ new_name (таким чином, не -p варіант). сценарій SS_SlashBack.txt ospath ($ file)> $ file # Перейменувати $ file в $ new_name система перейменувати $ file $ new_name # END OF SCRIPT
Примітка
Завдяки satya за цей відгук на форумі.