8

У меня 80 000 файлов в папке, и мне нужно переименовать все их из

filename.jpg

в

._filename.jpg

в среде Windows, я думаю, из DOS. Причина в том, что я сжал эти файлы в tar.gz из unix и скопировал в windows, и по некоторым причинам имена файлов изменились.

Не могли бы вы сказать мне, что команда сделать это? Спасибо

9 ответов9

15

Вот способ использования PowerShell:

Перейдите в свою папку и выполните эту команду

Get-ChildItem *.jpg | Rename-Item -newname {"._" + $_.Name}

Дополнительная бонусная короткая версия:

gci *.jpg | ren -newname {"._" + $_.Name}
6

У меня есть 2 решения:

  1. Все файлы находятся в одной папке

    • запустите в этой папке следующую команду:

      for /f "delims=¯" %i in ('dir /b /on') do ren "%i" "._%i"
      
  2. Полное решение, когда есть файлы в подпапках И когда вы хотите заменить первые n символов на строку, которую вы хотите:D

    • создайте командный файл с помощью следующей команды
    • измените параметры переменной на то, что вы хотите
      • path: поместите в "" корневой путь ваших файлов (например, "C:\ Documents and Settings \ user \ desktop \ new folder"
      • numfirstchars2replace: поместите число с первыми символами для замены (в вашем случае, 2)
      • str2put поместите строку , которая будет добавлен в качестве префикса нового файла (в вашем ._)
    • запустить его в папке, отличной от того, где находятся файлы


@echo off

::only to tell user what this bat are doing
echo.1.initializing...

::enable that thing to allow, for example, incremental counter in a for loop :)
echo.- EnableDelayedExpansion
SETLOCAL EnableDelayedExpansion

::variables
echo.- variables
:: - place here the absolute root path of your files
set path="put here where are the root folder of your files"
set pathbak=%cd%
set numfirstchars2replace=2
set str2put=._

::go to %path% and its driveletter
echo.- entering the path you want
for /f "delims=¯" %%i in ('echo.%path%') do %%~di
cd %path%

::search all subfolders and save them to a temp file
echo.- searching for subfolders
echo.%path%>%temp%\tmpvar.txt
for /f "delims=¯" %%i in ('dir /s /b /on /ad') do echo."%%i">>%temp%\tmpvar.txt

::execute command for root folder and all found subfolders
echo.
echo.2.executing...
for /f "delims=¯" %%i in (%temp%\tmpvar.txt) do (
  cd %%i
  echo.- in folder: %%i
  for /f "delims=¯" %%j in ('dir /b /on /a-d') do (
    set newname=%%j
    set newname=!newname:~%numfirstchars2replace%,1000!
    echo.- renaming from "%%j" to "%str2put%!newname!"...
    ren "%%j" "%str2put%!newname!"
  )
)

echo.
echo.3.exiting...
::return to %pathbak% and its driveletter
for /f "delims=¯" %%i in ('echo.%pathbak%') do %%~di
cd %pathbak%

@echo on
3

Если они все находятся в одной папке, вы можете выбрать их все с помощью Control + A а затем нажать F2 чтобы переименовать одну из них. Все последующие файлы будут называться file(2), file(3) и т.д.

3

Попробуйте Powershell (предварительно установлен в Windows 7):

Get-Childitem /path/to/your/files | foreach-object { move-item $_ $("._" + $_.name) }

(проверил это в моем загрузочном каталоге.)

Изменить: код Сиима К добавит дополнительный ".jpg" к каждому "._filename.jpg". Удалите этот последний «.jpg» из кода Siim K, и у вас будет короткий, элегантный код для переименования ваших файлов.

3

Total Commander имеет действительно хороший инструмент для переименования.

3

Вы можете использовать встроенный в rename или ren команды:

ren *.jpg ._*.jpg

Хотя, как и во всех этих случаях, попробуйте сначала каталог, содержащий всего несколько файлов.

0

Я использовал эту бесплатную программу File Renamer с отличными результатами. Множество различных фильтров и опций, плюс это дает вам возможность проверить результаты. Возможно, немного устаревший пользовательский интерфейс, но работает как чемпион.

http://www.webxpace.com/software/freeware.shtml#FileRenamer

0

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

0

Я всегда считал Flash Renamer хорошим инструментом для переименования файлов в пакетном режиме.

Он имеет пробную и полную версии ($ 20) и может переименовывать файлы на основе метаданных - очень полезно для переименования файлов MP3, для которых я чаще всего использую его.

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