Пакетный скрипт - переименовать файл на основе слов - PullRequest
0 голосов
/ 31 октября 2019

Извините, я новичок в программировании пакетных скриптов.

Вопрос

Я хочу переименовать некоторые файлы в каталоге Windows.

Примерследующие файлы (размер только показатель):

PP123_MQ_large.png    <- size: 30kb
PP123_MQ_medium.png   <- size: 50kb 
PP123_MQ_small.png    <- size: 60kb

PP666_MQ.png          <- size: 68kb

PP234_MQ3_small.png   <- size: 31kb

PP789_MQ2_large.png   <- size: 15kb

Для файлов с словом large я хочу переименовать его в small.

Для файлов сслово small, я хочу переименовать его в large.

Для файлов, которые имеют слово medium, я хочу, чтобы оно оставалось НЕПРАВИЛЬНЫМ.

Для файлов, у которых нет слова small или large, я хочу, чтобы он оставался незатронутым.

Ожидаемый результат

PP123_MQ_small.png     <- size: 30kb  changed to small
PP123_MQ_medium.png    <- size: 50kb  remain untouch because is medium
PP123_MQ_large.png     <- size: 60kb  changed to large

PP666_MQ.png           <- size: 68kb  remain untouch because no small or large

PP234_MQ3_large.png    <- size: 31kb  changed to large

PP789_MQ2_small.png    <- size: 15kb  changed to small

Проблема

Ниже приводитсяМой пакетный скрипт:

cd C:\Users\mydir
ren *_large.png *_tempsmall.png
ren *_small.png *_large.png
ren *_tempsmall.png *_small.png

Но для файла, который имеет только small, например PP234_MQ3_small.png, он сгенерирует дополнительный файл PP234_MQ3_large.png.

Для файла, который имеет только large, как и PP789_MQ2_large.png, он будет генерировать дополнительный файл PP789_MQ2_small.png.

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

1 Ответ

1 голос
/ 31 октября 2019

Дайте этому шанс:

cd /d "C:\users\mydir"
ren *_small.png *_large.png_tmp
ren *_large.png *_small.png_tmp
ren *.png_tmp *.png

Мы переместим все small в large, с _tmp в расширение и наоборот. Затем мы просто переименовываем все файлы, удаляя _tmp

. Кроме того, в качестве более безопасной функции, используйте cd /d, как показано выше, и даже лучше, если это ваш собственный профиль, замените cd /d "c:\Users\mydir" на cd /d "%userprofile%"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...