Переименовать файлы с индексом (CMD) - PullRequest
0 голосов
/ 30 октября 2019

У меня много файлов, и я хочу переименовать их в что-то вроде Bild(1).jpg, Bild(2).jpg, Bild(3).jpg, ....

Я знаю, как переименовать один файл в CMD:

ren *.* Bild(1).jpg

Но как мне добиться этого для сотен файлов?

Ответы [ 4 ]

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

Могу ли я предложить вам?

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

Кроме того, учитывая, что они возглавляются нулями ...


@echo off && setlocal enabledelayedexpansion 

for /f %%i in ('dir /o-d /on /b "*.jpg" 2^>nul^|find "" /v /c')do set _cnt=%%i
for /f ^tokens^=* %%f in ('where ".:*.jpg"')do rename "%%~f" "Bild(!_cnt!).jpg" && set /a _cnt-=1


  • :: or, led by zero yours files::

@echo off && setlocal enabledelayedexpansion 

for /f %%i in ('dir /o-d /on /b "*.jpg" 2^>nul^|find "" /v /c')do set "_cnt=%%i"
for /f ^tokens^=* %%f in ('where ".:*.jpg"')do set "_led=00000!_cnt!" && (
                 rename "%%~f" "Bild(!_led:~-5!).jpg" && set /a "_cnt-=1" )

В первом цикле используйте dir + find / v / c дляподсчитать общее количество файлов в папке.

В следующем цикле, который вы можете переименовать, использование _cnt уменьшает переменную _cnt ( `set" _cnt- = 1 "), сам циклобновляет переменную _led и добавляет 0000 ко всем действиям, устанавливая _led (нули + _cnt).

Таким образом, вы можете определить количество цифр для переименования, объединив 00000 + _cnt. set _led=!_led:~-5! примет / использует только последние 5 цифр для переименования вашего файла ...


  • Или что-то совершенно отличное от описанного вышеи то, что мой английский limited не позволяет мне четко объяснить вам:)

Для получения дополнительной информации о командах вы можете попробовать получить справку по всем командамтекст в командной строке, например:

>"%temp%\all-helps.txt" (for /? & set /? & dir /? & rename /? ) & "%temp%\all-helps.txt"

rem :: Sorry about the English... 

0 голосов
/ 30 октября 2019

Ваш вопрос не очень понятен, но я думаю, что вы хотите:

@echo off
setlocal enabledelayedexpansion
set num=0
for %%i in (*.jpg) do (
  set /a num+=1
  echo ren "%%~i" "Bild(!num!)%%~xi"
)

На данный момент просто echo - это команда ren, чтобы фактически выполнить переименование, вынеобходимо удалить echo из последней строки для переименования.

Также обратите внимание, что это не рекурсивный поиск по подкаталогам, поскольку это не было частью вашего вопроса.

0 голосов
/ 30 октября 2019

@ AntonSchrage Вас не волнует, в каком порядке они названы, кроме порядка, в котором они отображаются в настоящее время в cmd ..?

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

Вместо ren мы можем сделать файлы более безопасными и просто создать жесткие ссылки, используя MKLINK, тогда, если есть проблема с тем, как они переименовываются, вы можете поговорить с нами о заказе. .

Если нет проблем, вы можете просто удалить исходные файлы и использовать жестко связанные файлы или использовать версию команды с переименованием, указанную ниже.

Создать жесткие ссылки - непосредственно в CMDОкно CLI

MD "%TEMP%\Hard_Links\"
SET "#="
FOR %_ IN ( "C:\Your\Path\To\Files\*.jpg" ) DO (
  CALL SET /A "#=#+1"
  CALL MKLINK /H "%TEMP%\Hard_Links\Bild(%#%).jpg" "%~f_" )

Переименование файлов - непосредственно в окне CLI CMD

SET "#="
FOR %_ IN ( "C:\Your\Path\To\Files\*.jpg" ) DO (
  CALL SET /A "#=#+1"
  CALL REN "%~f_" "Bild(%#%).jpg" )

ПРИМЕЧАНИЕ: Жесткие ссылки выглядят и действуют как отдельные файлы, но являются указателямик оригиналам, поэтому они не будут занимать дополнительное место на диске.

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

Таким образом, если порядок не соответствует ожидаемому при использовании жестких ссылок, вы не потеряли первоначальное наименование и можете просто удалить жесткие ссылки.

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

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

0 голосов
/ 30 октября 2019

Если вы знаете какой-либо язык, например, Python или PHP. Вы можете сделать это с помощью любого цикла. Прочитайте все файлы из этого каталога, а затем зациклитесь на этом. Все файлы будут переименованы. Если вы переименуете один файл, выполните следующие действия. ШАГИ: 1-> Нажмите crrl + R 2-> Тип cmd, затем нажмите Enter 3-> Перейти к тому пути, где лежит ваш файл. Затем введите эту команду ниже. ваш файл будет переименован

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