13

Оригинальные файлы

File 15 - Example.txt
File 2 - Example.txt
File 22 - Example.txt
File 3 - Example.txt
File 4 - Example.txt
File 5 - Example.txt

Желаемый вывод

File 15 - Example.txt
File 02 - Example.txt
File 22 - Example.txt
File 03 - Example.txt
File 04 - Example.txt
File 05 - Example.txt

Один файл может быть легко переименован с помощью ren .

ren "File 2 - Example.txt" "File 02 - Example.txt"

Можно ли будет переименовать его с помощью Windows ren или rename инструмент?

4 ответа4

17

Этот PowerShell один вкладыш расширит все числа в имени файла до двух мест .PadLeft(2,'0'):
(и оставьте номера с другими местами нетронутыми)

Get-ChildItem *[0-9]*.txt|Rename-Item -NewName {([regex]::Replace($_.BaseName,'\d+',{$args[0].Value.PadLeft(2,'0')}))+$_.Extension}

чтобы быть по теме, завернутый в строку / командный файл cmd:

Powershell -Nop -C "Get-ChildItem *[0-9]*.txt|Rename-Item -NewName {([regex]::Replace($_.BaseName,'\d+',{$args[0].Value.PadLeft(2,'0')}))+$_.Extension}"

Чтобы быть в безопасности перед выполнением команд, добавьте либо

  • -Confirm которое спрашивает, прежде чем делать переименование
  • -WhatIf который перечисляет все переименования, он будет выполняться без параметра

как раз перед последним "

13

Можно ли будет переименовать его с помощью Windows ren или переименовать инструмент?

Да, но для этого требуется командный файл.

test.cmd:

@echo off
setlocal EnableDelayedExpansion
for /f "tokens=1,2,3,4" %%i in ('dir /b *Example.txt') do (
  rem pad 2nd token with leading zero
  set _num=0%%j
  set _num=!_num:~-2!
  ren "%%i %%j %%k %%l" "%%i !_num! %%k %%l"
  )
endlocal

пример:

> dir *Example.txt
 Volume in drive F is Expansion
 Volume Serial Number is 3656-BB63

 Directory of F:\test\test

03/01/2019  11:30                 0 File 15 - Example.txt
03/01/2019  11:30                 0 File 2 - Example.txt
03/01/2019  11:30                 0 File 22 - Example.txt
03/01/2019  11:30                 0 File 3 - Example.txt
03/01/2019  11:30                 0 File 4 - Example.txt
03/01/2019  11:30                 0 File 5 - Example.txt
               6 File(s)              0 bytes
               0 Dir(s)  1,075,134,230,528 bytes free

> ..\test

> dir
 Volume in drive F is Expansion
 Volume Serial Number is 3656-BB63

 Directory of F:\test\test

03/01/2019  11:54    <DIR>          .
03/01/2019  11:54    <DIR>          ..
03/01/2019  11:30                 0 File 02 - Example.txt
03/01/2019  11:30                 0 File 03 - Example.txt
03/01/2019  11:30                 0 File 04 - Example.txt
03/01/2019  11:30                 0 File 05 - Example.txt
03/01/2019  11:30                 0 File 15 - Example.txt
03/01/2019  11:30                 0 File 22 - Example.txt
               6 File(s)              0 bytes
               2 Dir(s)  1,075,134,230,528 bytes free

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

3

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


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

Вот скриншот для демонстрации его использования:

Пример Total Commander Multi Rename

Шаг за шагом:

  1. Скачайте и запустите Total Commander.
  2. Перейдите в папку с файлами для переименования.
  3. Отметьте файлы для переименования:
    • Вариант 1 - Ctrl + A для маркировки всех файлов в папке.
    • Вариант 2 - Отметьте файлы один за другим, с помощью клавиши пробела или мыши щелкните правой кнопкой мыши.
    • Вариант 3. Откройте "Поиск файлов" (Alt + F7), введите *.txt в поле "Поиск", нажмите "Начать поиск", нажмите "Подача в список", затем отметьте файлы с помощью Ctrl + A. Используйте эту технику, если вы хотите переименовать файлы также во внутренних папках.
  4. Нажмите Ctrl + M, чтобы открыть инструмент Multi-Rename.
  5. Установите нужные значения в полях "Поиск" и "Заменить". Если используется регулярное выражение, установите флажок RegEx.
  6. Хит "Старт!».
-2

ren *.bat *.txt будет работать для переименования расширений во всех соответствующих файлах, сохраняя другую часть имени. Не могли бы вы не использовать это для запуска последовательности команд ren ?

  • ren "File *" "File 0*"
  • ren "File 00*" "File 0*"
  • (иметь дело с висячими остатками, такими как File 022 - Example.txt

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