Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Переименование и копирование файлов

Ответить
Настройки темы
CMD/BAT - [решено] Переименование и копирование файлов

Пользователь


Сообщения: 60
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день! Хочу создать батник, который бы переименовывал файлы в папке и копировал их в итоговую "Total"

Есть две папки, "1" и "2" и в обеих лежат файлы c именами:
check1,check2,check3.... и т.д

Нужно чтобы нумерация начиналась с 001 и к имени добавлялся номер папки.

например check001_1, check002_1, check003_1 - это для папки "1" и например check001_2, check002_2, check003_2 - для папки "2"

файлов может быть более тысячи

Для меня это нереально(

Пробовал только переименовывать вот таким кодом

for /f "tokens=*" %%a in ('dir /b C:\Onkassa\Rename\1\*.*') do ren C:\Onkassa\Rename\1\%%a 001_1%%a

в итоге переименован только первый файл 001_1check

Отправлено: 11:24, 17-08-2018

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата jordan_74:
файлов может быть более тысячи »
И что Вы хотите получить в этом случае — с трёхзначным-то:
Цитата jordan_74:
Нужно чтобы нумерация начиналась с 001 и к имени добавлялся номер папки.
например check001_1, check002_1, check003_1 »
значением номера?!

Цитата jordan_74:
Хочу создать батник, »
PowerShell Вас устроит?

Отправлено: 12:10, 17-08-2018 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Пользователь


Сообщения: 60
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Iska:
И что Вы хотите получить в этом случае — с трёхзначным-то: »
Можно ограничиться до тысячи, 999

Цитата Iska:
Нужно чтобы нумерация начиналась с 001 и к имени добавлялся номер папки.
например check001_1, check002_1, check003_1 » »
Именно так да


Цитата Iska:
PowerShell Вас устроит? »
Желательно батник конечно

Отправлено: 12:45, 17-08-2018 | #3


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата jordan_74:
Желательно батник конечно »
Нет, я тут пас — мало желания на пакетных файлах пытаться выцепить значимую часть имени из произвольно взятых:
Цитата jordan_74:
check1,check2,check3 »

Отправлено: 13:43, 17-08-2018 | #4


Пользователь


Сообщения: 60
Благодарности: 0

Профиль | Отправить PM | Цитировать


Тем не менее благодарю за попытку!!

Отправлено: 13:56, 17-08-2018 | #5


Ветеран


Contributor


Сообщения: 2710
Благодарности: 1686

Профиль | Отправить PM | Цитировать


Iska, Кто хочет сделать - ищет способ, кто не хочет - причину.
Вот вариант (скрипт 1)
Код: Выделить весь код
@Echo Off
cls
	Set "BoxIn=Z:\Box_In"
	Set "Folds="1111" "2222""

	Set "Pref=check"
	Set "Mask=%Pref%*.*"
	Set /A Max=1000
	
	Set "BoxOut=Z:\Box_In\Total"

	If Not Exist "%BoxOut%" Md "%BoxOut%"
	
	Pushd "%BoxIn%" &&(
		FOR %%d IN (%Folds%) DO (
			FOR %%f IN ("%%~dpnxd\%Mask%") DO (
				Call :RenCopy "_%%~d" "%%f" "%%~nf" "%%~xf" "%BoxOut%"
			)
		)
		Popd
	)
Pause
GoTo :Eof

:RenCopy
	Set "NewName=%~3"
	Call Set "NewName=%%NewName:%Pref%=%%"
	2>nul Set /A NewName=%NewName%+%Max% ||GoTo :Eof
	Set "NewName=%Pref%%NewName:~1%%~1%~4"
	>nul Copy %2 "%~5\%NewName%"
	>nul Ren %2 "%NewName%" 
GoTo :Eof
Как я понимаю, имена папок и файлов в вопросе условны.
Главное, чтобы выдерживалось правило образования имени : ПрефиксНомерРасширение. Расширение может и отсутствовать, тогда:
Set "Mask=%Pref%*."
Предполагаю, что обе подпапки находятся в общей папке. Имена корневой папки, подпапок, выходной папки укажите сами. Кстати, число подпапок в моём решении произвольно, извольте их перечислить.
Укажите префикс в именах файлов, в Вашем вопросе он check
Можно задать формат номера в новом имени.
Для Max=1000 номер будет трёхзначным, например, 001
Для Max=10000 номер будет четырёхзначным, например, 0002
В выходную папку копируются файлы с новым именем.
В исходной папке файлы переименовываются.
Если не надо, чтобы переименовывались файлы в исходной папке, уберите строку с ren


-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 18-08-2018 в 18:54.


Отправлено: 14:19, 17-08-2018 | #6


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата megaloman:
Iska, Кто хочет сделать - ищет способ, кто не хочет - причину. »
megaloman, по условию задачи ничего не сказано про постоянный префикс. Совсем ничего. Просто дан пример возможных имён файлов. Как решите задачу с произвольными именами — я с Вами соглашусь.
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:24, 17-08-2018 | #7


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1171
Благодарности: 487

Профиль | Отправить PM | Цитировать


Цитата megaloman:
Кто хочет сделать - ищет способ, кто не хочет - причину. »
я бы сказал так:
кто хочет передвигаться быстро, садится на транспорт и едет, а кому надо просто добраться и у него времени "вагон", тот может и пешком ходить...

-------
scio me nihil scire. Ѫ


Отправлено: 14:40, 17-08-2018 | #8


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата YuS_2:
кто хочет передвигаться быстро, садится на транспорт и едет, а кому надо просто добраться и у него времени "вагон", тот может и пешком ходить... »
Неточная цитата
Цитата:
Слушай птичка, летим со мной, там много вкусного! … Лучше день потерять, зато потом за час долететь!

Отправлено: 14:45, 17-08-2018 | #9


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1171
Благодарности: 487

Профиль | Отправить PM | Цитировать


Цитата Iska:
Лучше день потерять, зато потом за час долететь! »
Крыля... ноги... главное - хвост!

-------
scio me nihil scire. Ѫ


Отправлено: 15:20, 17-08-2018 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Переименование и копирование файлов

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Переименование папки и копирование новой из сети. Lorttt Скриптовые языки администрирования Windows 19 19-06-2017 18:56
CMD/BAT - Копирование файла и переименование согласно списка из exel TPOJIb_55 Скриптовые языки администрирования Windows 4 01-06-2016 09:28
CMD/BAT - Копирование файлов из подкаталогов и их переименование в название папки lexxxyatina Скриптовые языки администрирования Windows 7 13-11-2014 09:44
CMD/BAT - [решено] Копирование и переименование файла по особой маске DARK-Silver666 Скриптовые языки администрирования Windows 5 20-12-2012 21:22
VBS/WSH/JS - [решено] переименование и копирование папки Anufriev Скриптовые языки администрирования Windows 6 22-05-2012 08:11




 
Переход