Я прочитал столько, сколько команда Windows RENAME интерпретирует подстановочные знаки, насколько я понимаю, и до сих пор не могу решить, есть ли какая-нибудь комбинация подстановочных знаков, которую вы можете использовать, чтобы заставить RENAME сделать это:

Old file names: abc001.txt, abc002.txt, abc003.txt, ... etc
New file names: demo_001.txt, demo_002.txt, demo_003.txt, ... etc
or: x001.txt, x002.txt, x003.txt, ... etc
or: file01.txt, file02.txt, file03.txt, ... etc

Что я знаю, так это то, что rename abc*.txt xyz*.txt изменит все префиксы abc на xyz , но только потому, что abc и xyz имеют одинаковую длину. Есть ли простая команда переименования, которая будет работать с более коротким или длинным префиксом ... или вам нужно использовать пакетный процесс для выполнения таких переименований?

3 ответа3

1

В PowerShell для первого примера вы можете использовать:

Dir C:\folder | ren –NewName {$_.name -replace "abc","demo_"}

Добавьте -whatif как последний параметр, если вы хотите проверить команду перед ее выполнением

1

Ответ - Нет, вы не можете изменить длину префикса имени файла так, как хотите, используя только команду RENAME с подстановочными знаками. Это потребует некоторого количества более сложных сценариев или нестандартного стороннего инструмента.

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

0

Вот способ сделать это с помощью TCC/LE от JP Software, интерпретатора команд, чья команда REN поддерживает регулярные выражения:

ren ::abc(\d+.txt) ::demo_\1

Без регулярных выражений это все еще одна строка. Один просто использует функцию переменной @INSTR[] и команду FOR :

for i in (abc*.txt) do ren %i demo_%@instr[3,,%i]

дальнейшее чтение

  • JP Software. РЕН. Возьмите Command / TCC Help.
  • JP Software. ЗА Возьмите Command / TCC Help.
  • JP Software. @INSTR. Возьмите Command / TCC Help.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .