Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
Wolfys
0 / 0 / 0
Регистрация: 19.01.2016
Сообщений: 9
1

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

19.01.2016, 15:12. Просмотров 1278. Ответов 8
Метки нет (Все метки)

Добрый день коллеги!
Уже 2 день мучаюсь и не как не могу придумать, как написать не сложный батник ( возможно и сложный, я не особо в них разбираюсь ).

Задача следующая: Есть сканер который сканирует большое кол-во документов зараз ( 20 до 100 ) и создает файл с расширение .tif

Название файлов звучит следующим образом 1_2E25F - что обозначает:
1 - номер изображения
_ - разделитель
2E25F - номер партии ( Всегда рандом, или там какая-то закономерность )

Нужно их переименовать в следующий вид x00001 что обозначает:
x - наша номенклатура.
00001 - 5 значный номер файла.

Вроде всё просто взять и убрать у названия окончание файла и приписать спереди цифры и одну букву, но тут загвозка вот в чём :
00001 - это правильно
000010 - это не правильно
00010 - это правильно

и так далее ( возможны документы в которых будет и 1000 листов и 2000 и даже 5000 )
Помогите пожалуйста..... Я совершенно не знаю как это сделать.....

не какое доп ПО не можем устанавливать государственная компания....... полная защита, нужно решение по средством windows.

Добавлено через 16 минут
забыл уточнить все файлы в отдельные, а не одним документом
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.01.2016, 15:12
Ответы с готовыми решениями:

Переименование файла по определенному условию
Здравствуйте, стоит передо мной задача такая не знаю как решить. Может есть какое то легкое...

Переименование PDF-файлов в имена, берущиеся из содержимого этих файлов
Всем доброго времени суток!:) Подскажите, пожалуйста, как переименовать файл с расширением pdf,...

Переименование файлов именами существующих файлов
Доброго времени суток! Помогите, пожалуйста, решить задачу. Не программист, сам бат-ники писать их...

Переименование файлов в папках с добавлением к именам этих файлов имён этих папок
Есть 4 папки с архивом записей с камеры видеонаблюдения с именами 13 14 15 16. В каждой папке...

Переименование файлов
Есть некоторое количество файлов в папке как переименовать все файлы , что бы в результате...

8
greg zakharov
Нарушитель
2302 / 955 / 266
Регистрация: 07.05.2015
Сообщений: 1,874
19.01.2016, 16:14 2
Windows Batch file
1
2
3
4
@echo off
  powershell /nop /ex bypass /com ^
  "&{ls -fi *_*|%%{ren $_.FullName "$('{0:D5}' -f [Int32]$_.Name.Split('_')[0]).txt"}}"
exit /b
0
Wolfys
0 / 0 / 0
Регистрация: 19.01.2016
Сообщений: 9
19.01.2016, 16:46  [ТС] 3
почему-то не работает выдает следующую ошибку. Скриншот приложил........
Возможно что-то нужно поменять увы я не знаю что........
0
Миниатюры
Переименование файлов по определенному критерию  
greg zakharov
Нарушитель
2302 / 955 / 266
Регистрация: 07.05.2015
Сообщений: 1,874
19.01.2016, 16:55 4
Либо укажите явно папку в которой находятся файлы:
Windows Batch file
1
2
3
4
@echo off
  powershell /nop /ex bypass /com ^
  "&{ls C:\MyFolder -fi *_*|%%{ren $_.FullName "$('{0:D5}' -f [Int32]$_.Name.Split('_')[0]).tif"}}"
exit /b
Либо просто кидаете бат в папку с файлами и запускаете.
0
19.01.2016, 16:55
Wolfys
0 / 0 / 0
Регистрация: 19.01.2016
Сообщений: 9
19.01.2016, 17:15  [ТС] 5
я кинул батник не изменяя в папку с файлами и выдала ошибку которую я приложил...
структуру папки приложил.
0
Миниатюры
Переименование файлов по определенному критерию  
Dragokas
Эксперт WindowsАвтор FAQ
17099 / 7154 / 861
Регистрация: 25.12.2011
Сообщений: 10,954
Записей в блоге: 16
19.01.2016, 17:49 6
Лучший ответ Сообщение было отмечено Wolfys как решение

Решение

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
@echo off
SetLocal EnableExtensions EnableDelayedExpansion
 
set src=c:\scan
 
for /f "delims=" %%a in ('dir /b /a-d "%src%\*.tif"') do (
  for /f "delims=_" %%b in ("%%~na") do (
  set n=0000%%b
  ren "%src%\%%a" "x!n:~-5!.tif"
))
pause
2
Wolfys
0 / 0 / 0
Регистрация: 19.01.2016
Сообщений: 9
20.01.2016, 08:51  [ТС] 7
Dragokas, респект! Работает великолепно!
0
alpap
2543 / 1535 / 522
Регистрация: 26.04.2015
Сообщений: 5,174
20.01.2016, 16:50 8
Dragokas, Интересное решение.

Не по теме:

Был случай здесь, когда надо было переименовать в папке файлы и назначить имена по нарастающей от, например, имя0001 до имя9999, именно сохраняя кол-во нулей вначале к разрядности, много было вариантов решения задачи, а такого вроде и не было:

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
@echo off
SetLocal EnableDelayedExpansion
::надо 01-99 (set "m=0!n!" & ren "%src%\%%~nxa" "name!m:~-2!.txt")
::надо 001-999 (set "m=00!n!" & ren "%src%\%%~nxa" "name!m:~-3!.txt")
::надо 0001-9999 (set "m=000!n!" & ren "%src%\%%~nxa" "name!m:~-4!.txt")
set "src=papka"
for /f "delims=" %%a in ('dir /a-d /b "%src%\*.txt"') do (
 set /a n+=1
 set "m=000!n!" & ren "%src%\%%~nxa" "name!m:~-4!.txt"
)
pause>nul
.

0
Dragokas
20.01.2016, 18:15     Переименование файлов по определенному критерию
  #9

Не по теме:

Что же там интересного. Самое что ни есть стандартное.

0
20.01.2016, 18:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.01.2016, 18:15
Привет! Вот еще темы с ответами:

Переименование файлов
Доброго все дня! Подскажите как с помощью cmd переименовать файл так чтобы в новом имени не...

Переименование файлов
Добрый день, нужна помощь, есть каталог, в котором файлы с длинными названиями, их объединяет то, в...

Переименование файлов
@echo off setlocal enabledelayedexpansion chcp 1251 set /p k=Введите количество ведущих нулей ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.