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

Компьютерный форум 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

 
mwz mwz вне форума

Аватара для mwz

Ушел из жизни


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

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


Цитата Iska:
И они ещё борятся за почётное звание дома высокой культуры быта! »
Скрытый текст
Ну дык как всегда... Табличка внизу слева.

-------
Mikhail Zhilin


Отправлено: 22:43, 22-08-2018 | #71



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

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


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


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

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


Изображения
Тип файла: jpg Результат работы.jpg
(203.4 Kb, 5 просмотров)
Тип файла: jpg Сообщение.jpg
(89.7 Kb, 5 просмотров)

megaloman,
Цитата megaloman:

Set "ArcMask=*.7Z" »
В этой строчке поменял 7Z на zip, иначе не срабатывало.

После изменений скрипт отработал именно так как надо!!! (см. результат работы.jpg)

Но при этом я получил сообщение, которое мне непонятно.(см.сообщение.jpg)

Отправлено: 09:14, 23-08-2018 | #72


Ветеран


Contributor


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

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


jordan_74, переименуйте Ваш батник c расширением .TXT и прикрепите к сообщению. Похоже, вместо
GoTo :Eof У вас где-то GoTo :Eo Или GoTo :Eo f
То есть, скопипастили код криво, или случайно извратили.

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


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


Отправлено: 10:01, 23-08-2018 | #73


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


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

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


Вложения
Тип файла: txt Rename.txt
(1.0 Kb, 6 просмотров)

megaloman,

Файл прикрепил
http://forum.oszone.net/attachment.p...1&d=1535008085

Отправлено: 10:08, 23-08-2018 | #74


Ветеран


Contributor


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

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


jordan_74, предчувствия меня не обманули, самый последний GoTo :Eof у вас GoTo :Eo
А отрабатывает нормально, так как без этой строки в принципе можно и обойтись. Я обычно ей обозначаю конец подпрограммы, и, если вы далее ничего не наваяете своего, она не обязательна
Цитата:
A и B это разные источники получения чеков. в этих папках чеки разных счетов и не совпадают
можно сделать фэншуйнее, если счетов не много, то указать в батнике, какие счета принадлежат источнику A, а какие B, и, в дальнейшем, не напрягая усталость и мыслительные ресурсы, складывать все пришедшие архивы в одну папку.

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


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

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:16, 23-08-2018 | #75


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


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

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


Цитата megaloman:
можно сделать фэншуйнее, если счетов не много, то указать в батнике, какие счета принадлежат источнику A, а какие B, и, в дальнейшем, не напрягая усталость и мыслительные ресурсы, складывать все пришедшие архивы в одну папку. »
Я уточню у бухгалтеров. Но уже сейчас все работает именно так как надо! Спасибо огромнейшее!! Мегаааааа!!

Отправлено: 11:10, 23-08-2018 | #76


Новый участник


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

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


Доброе утро. Прошу помощи при создании кода.
Необходимо файл 1.txt из папки с:\1\ скопировать в папку c:\2\ но с другим именем. Можно дату и время в место имени. Ее раззапускаю батник, он снова копирует, но с другим уже именем.
Заранее благодарю

Отправлено: 08:51, 07-10-2018 | #77


Ветеран


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

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


Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sSourceFile=c:\1\1.txt
set sDestFolder=c:\2

if exist "%sSourceFile%" (
	if exist "%sDestFolder%\." (
		for /f "usebackq delims=" %%i in (
			`2^>nul wmic.exe OS get LocalDateTime /value ^| find.exe /i "LocalDateTime"`
		) do for /f "delims=+-" %%j in ("%%i") do set s%%j
		set sLocalDateTime=!sLocalDateTime:.=!
		set sNewFileName=!sLocalDateTime:~0,-3!.txt
		>nul copy /y "%sSourceFile%" "%sDestFolder%\!sNewFileName!"
	) else (
		echo Can't find destination folder [%sDestFolder%].
		exit /b 2
	)
) else (
	echo Can't find source file [%sSourceFile%].
	exit /b 1
)

endlocal
exit /b 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:53, 07-10-2018 | #78


Ветеран


Contributor


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

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


Iska, Пытаюсь понять смысл задачи. Один и тот же неизменный файл копировать много раз с разными именами - нонсенс. Другое дело, копировать исходный файл с включением в имя времени последнего изменения - смысл усматриваю.
Код: Выделить весь код
@Echo Off
	Call :@Files "C:\1\1.txt" "C:\2"
GoTo :Eof

:@Files
	If Not Exist %1 (Echo %1 -file not found &Exit /B 2)
	If Not Exist %2 (Echo %2 -folder not found &Exit /B 2)
	Set "Fin=%~1"
	For /f "tokens=1* delims=," %%a in ('wmic datafile where "name='%Fin:\=\\%'" get 'Last Modified' /format:csv') Do (
		If /I "%%a"=="%ComputerName%" Set "Df=%%b"
	)
	If Exist "%~2\%~n1_%Df:~0,14%%~x1" (Echo file already exists "%~2\%~n1_%Df:~0,14%%~x1" &Exit /B 0)
	Set Command=Copy %1 "%~2\%~n1_%Df:~0,14%%~x1"
	%Command% >nul
	Set "Err=%ErrorLevel%"
	If Not %Err%==0 (Echo Command not successful &Echo %Command% &Exit /B %Err%)
Exit /B 0
После копирования получим файл ИсходноеИмя_ГГГГММДДччммсс.Расширение
Где ГГГГММДДччммсс -время последнего изменения файла

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


Последний раз редактировалось megaloman, 07-10-2018 в 15:25.

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:19, 07-10-2018 | #79


Ветеран


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

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


Первый раз скопируется с тем же именем в нужную папку (будет создана при отсутствии)
При последующих копированиях к имени будет добавляться дата и время
(если из под dir убрать \%f%, условие будет распространяться на все файлы в папке и подпапках 1, соблюдая структуру при этом)
Код: Выделить весь код
@echo off
set "d1=C:\1"
set "d2=C:\2"
set "f=1.txt"

set "stime=%time:~,8%"
for /f "delims=" %%a in ('dir /a-d/b/s "%d1%\%f%"') do set "d=%%a"& call :l "%%a" "%%d:%d1%=%d2%%%"
pause& exit
 
:l
 2>nul md "%~dp2"
 if not exist "%~2" (>nul copy "%~1" "%~2") else (>nul copy "%~1" "%~dp2%~n1_%date%_%stime::=.%%~x1")
exit /b

Последний раз редактировалось alpap, 07-10-2018 в 15:41.

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:36, 07-10-2018 | #80



Компьютерный форум 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




 
Переход