CMD/BAT - [решено] Копирование файлов с одинаковым именем с разных ПК или с backup архива

Аватара пользователя
alpap

Re: CMD/BAT - [решено] Копирование файлов с одинаковым именем с разных ПК или с backup архива

Сообщение alpap »

Поиск в rar

[spoiler]С именами серверов

Код:
[/spoiler]

Код: Выделить всё

@Echo Off
cls
	Call :Together "2020-10-31.gw.uniroll.log"
	Call :Together "2020-10-13.gw.uniroll.log"
pause
Exit /B
:Together
	Set "AllComp=127.0.0.1 LocalHost 192.168.100.23 Max-ПК"
	Set "LogFolder=C$\Program Files (x86)\Test\Log"
	Set "Backup=\\BackupServer\Test2"
	Set "Mask=log from ??20??.rar"
	Set "BoxOut=Z:\Box_Out"
	Set "Arc=C:\Program Files\WinRAR\Rar.exe" 
	If Not Exist "%BoxOut%\%~n1" (
		Md "%BoxOut%\%~n1" ||(Echo Folder "%BoxOut%\%~n1" not created &Pause &Exit /B 1)
	)
	For %%c In (%AllComp%) Do (
		>nul 2>&1 Copy "\\%%c\%LogFolder%\%~1" "%BoxOut%\%~n1\%~n1_%%c%~x1"||(
			Call :FromRar %1 "%Backup%\%%c" "%BoxOut%\%~n1\%~n1_%%c%~x1"
		)
	)
	"%Arc%" a -ep1 -hpPassword "%BoxOut%\%~nx1.rar" "%BoxOut%\%~n1\*.*"
Exit /B
:FromRar
	FOR /F "usebackq delims=" %%a IN (`2^>nul Dir "%~2\%Mask%" /B /A:-D /O:-D /T:W`) DO (
		FOR /F "delims=" %%f IN ('""%Arc%" lb "%~2\%%a"|Find /I %1"') DO (
			Pushd "%~dp3"
				>nul 2>&1 "%Arc%" e "%~2\%%a" "%%f"
				>nul Move /Y "%%~nxf" "%~nx3" 
			Popd
			Exit /B
		)
	)
Exit /B 1

С нумерацией

Код:

Код: Выделить всё

@Echo Off
cls
	Call :Together "2020-10-30.gw.uniroll.log"
	Call :Together "2020-03-13.gw.uniroll.log"
pause
Exit /B
:Together
	Set "AllComp=127.0.0.1 LocalHost 192.168.100.23 Max-ПК"
	Set "LogFolder=C$\Program Files (x86)\Test\Log"
	Set "Backup=\\BackupServer\Test2"
	Set "Mask=log from ??20??.rar"
	Set "BoxOut=Z:\Box_Out"
	Set "Arc=C:\Program Files\WinRAR\Rar.exe" 
	If Not Exist "%BoxOut%\%~n1" (
		Md "%BoxOut%\%~n1" ||(Echo Folder "%BoxOut%\%~n1" not created &Pause &Exit /B 1)
	)
	Set /A N=1000
	For %%c In (%AllComp%) Do (
		Set /A N+=1
		>nul 2>&1 Call Copy "\\%%c\%LogFolder%\%~1" "%BoxOut%\%~n1\%~n1_%%N:~1%%%~x1"||(
			Call :FromRar %1 "%Backup%\%%c" "%BoxOut%\%~n1\%~n1_%%N:~1%%%~x1"
		)
	)
	"%Arc%" a -ep1 -hpPassword "%BoxOut%\%~nx1.rar" "%BoxOut%\%~n1\*.*"
Exit /B
:FromRar
	FOR /F "usebackq delims=" %%a IN (`2^>nul Dir "%~2\%Mask%" /B /A:-D /O:-D /T:W`) DO (
		FOR /F "delims=" %%f IN ('""%Arc%" lb "%~2\%%a"|Find /I %1"') DO (
			Pushd "%~dp3"
				>nul 2>&1 "%Arc%" e "%~2\%%a" "%%f"
				>nul Move /Y "%%~nxf" "%~nx3" 
			Popd
			Exit /B
		)
	)
Exit /B 1

С нумерацией и именами

Код:

Код: Выделить всё

@Echo Off
cls
	Call :Together "2020-10-29.gw.uniroll.log"
	Call :Together "2020-03-19.gw.uniroll.log"
pause
Exit /B
:Together
	Set "AllComp=127.0.0.1 LocalHost 192.168.100.23 Max-ПК"
	Set "LogFolder=C$\Program Files (x86)\Test\Log"
	Set "Backup=\\BackupServer\Test2"
	Set "Mask=log from ??20??.rar"
	Set "BoxOut=Z:\Box_Out"
	Set "Arc=C:\Program Files\WinRAR\Rar.exe" 
	If Not Exist "%BoxOut%\%~n1" (
		Md "%BoxOut%\%~n1" ||(Echo Folder "%BoxOut%\%~n1" not created &Pause &Exit /B 1)
	)
	Set /A N=1000
	For %%c In (%AllComp%) Do (
		Set /A N+=1
		>nul 2>&1 Call Copy "\\%%c\%LogFolder%\%~1" "%BoxOut%\%~n1\%~n1_%%N:~1%%_%%c%~x1"||(
			Call :FromRar %1 "%Backup%\%%c" "%BoxOut%\%~n1\%~n1_%%N:~1%%_%%c%~x1"
		)
	)
	"%Arc%" a -ep1 -hpPassword "%BoxOut%\%~nx1.rar" "%BoxOut%\%~n1\*.*"
Exit /B
:FromRar
	FOR /F "usebackq delims=" %%a IN (`2^>nul Dir "%~2\%Mask%" /B /A:-D /O:-D /T:W`) DO (
		FOR /F "delims=" %%f IN ('""%Arc%" lb "%~2\%%a"|Find /I %1"') DO (
			Pushd "%~dp3"
				>nul 2>&1 "%Arc%" e "%~2\%%a" "%%f"
				>nul Move /Y "%%~nxf" "%~nx3" 
			Popd
			Exit /B
		)
	)
Exit /B 1
	Set /A N=1000
	>nul 2>&1 (For %%c In (%AllComp%) Do (
		Set /A N+=1
		Call Copy "\\%%c\%LogFolder%\%~1" "%BoxOut%\%~n1\%~n1_%%N:~1%%%~x1" ||(
		Call Copy "%Backup%\%%c\%~1" "%BoxOut%\%~n1\%~n1_%%N:~1%%%~x1")
	))
Аватара пользователя
KamikadZZe

Re: CMD/BAT - [решено] Копирование файлов с одинаковым именем с разных ПК или с backup архива

Сообщение KamikadZZe »

Доброго времени суток всем форумчанам!

Megaloman, ОГРОМНЕЙШАЯ БЛАГОДАРНОСТЬ за помощь в постановке и решении моей задачи!!!!

Просто Гений!!!


Цитата megaloman:



Поиск в rar
CMD/BAT - [решено] Копирование файлов с одинаковым именем с разных ПК или с backup архива




Работает как швейцарские часы!



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



Всем кто не остался равнодушным и тоже пытался помочь, тоже ОГРОМНЕЙШАЯ БЛАГОДАРНОСТЬ!

Вопрос считаю решенным, а тему закрытой!
Аватара пользователя
KamikadZZe

Re: CMD/BAT - [решено] Копирование файлов с одинаковым именем с разных ПК или с backup архива

Сообщение KamikadZZe »

Доброго времени суток!


Цитата megaloman:



Поиск в rar

С именами серверов
CMD/BAT - [решено] Копирование файлов с одинаковым именем с разных ПК или с backup архива




Уважаемый Megaloman!



Не могли бы помочь решить возникшую проблемку.

Хотел немного адаптировать батник написанный вами под рабочую среду, но возникла проблема:



Код:

Код: Выделить всё

@Echo On
cls
	    Call :Together "2020-11-08.uniroll.log"
pause
Exit /B
:Together
	Set "AllComp=127.0.0.1 Max-ПК"
	Set "LogFolder=c$\logs"
	Set "Backup=d:\BackUp"
	Set "BackupFolder=app001 app002"	
	Set "Mask=log from ??.??.20??.rar"
	Set "BoxOut=d:\BackUp\Copy"
	Set "Arc=C:\Program Files\WinRAR\Rar.exe"
	If Not Exist "%BoxOut%\%~n1" (
		Md "%BoxOut%\%~n1" ||(Echo Folder "%BoxOut%\%~n1" not created &Pause &Exit /B 1
	)
	For %%c In (%AllComp%) Do (	
		>nul 2>&1 Copy "\\%%c\%LogFolder%\%~1" "%BoxOut%\%~n1\%~n1_%%c%~x1"||(
	For %%b In (%BackupFolder%) Do (
         	Call :FromRar %1 "%Backup%\%%b" "%BoxOut%\%~n1\%~n1_%%c%~x1"
		) >>1.txt
	Pause		
	                  )
	        )
	)	
	"%Arc%" a -ep1 -hp123 "%BoxOut%\%~nx1.rar" "%BoxOut%\%~n1\*.*"
Pause
Exit /B
:FromRar
	FOR /F "usebackq delims=" %%a IN (`2^>nul Dir "%~2\%Mask%" /B /A:-D /O:-D /T:W`) DO (
		FOR /F "delims=" %%f IN ('""%Arc%" lb "%~2\%%a"|Find /I %1"') DO (			
			Pushd "%~dp3"
				>nul 2>&1 "%Arc%" e "%~2\%%a" "%%f"
				>nul Move /Y "%%~nxf" "%~nx3"				 
			Popd							
			Exit /B
		)
	)
Exit /B 1

Проблема след. рода:

Батник ищет в архиве "BackupFolder=app001 app002" необходимый лог, находит его и переименовывает его добавляя AllComp, но не 1 раз, а столько, сколько их прописано в AllComp:

пример:

В архиве app001 1 файл 2020-11-08.unirol

2020-11-08.uniroll_127.0.0.1.log

2020-11-08.uniroll_Max-ПК.log

В архиве app002 1 файл 2020-11-08.unirol

2020-11-08.uniroll_127.0.0.1.log

2020-11-08.uniroll_Max-ПК.log

Т.е получается 1 и тот же файл с разными именами.

Файл извлекается из каждого архива, а перезаписывается последним 2020-11-08.unirol из последнего app002 архива
Аватара пользователя
KamikadZZe

Re: CMD/BAT - [решено] Копирование файлов с одинаковым именем с разных ПК или с backup архива

Сообщение KamikadZZe »

Цитата megaloman:



KamikadZZe, Лучше бы Вы рассказали, о какой рабочей среде речь (постановку дайте, умоляю). Вы изменили мой код, что Вы хотите сделать, надо докапываться, тем более что задача решалась давно. Мне надо как-то сымитировать Вашу ситуацию, чтобы что-то сделать.
»




Прошу прощения что не сразу отписался о возникшей проблеме при изменении кода!



Есть несколько серверов.



Серверы могут идентифицироваться как именами, например: Server1 Server2 ....

так и по IP, например 192.168.1.208 192.168.1.121 192.168.1.15 ...

либо в их комбинации



На каждом сервере

Например:

Server1

Server2

Server3

.......

итд.



имеется папка Logs расположенная в:

C$\Program Files (x86)\Test\Log"



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

например:

\\Server1\Logs\2020-10-22.gw.uniroll.log ...2020-10-21.gw.uniroll.log ...2020-10-20.gw.uniroll.log \\Server2\Logs\2020-10-22.gw.uniroll.log ...2020-10-21.gw.uniroll.log ...2020-10-20.gw.uniroll.log

\\Server3\Logs\2020-10-22.gw.uniroll.log ...2020-10-21.gw.uniroll.log ...2020-10-20.gw.uniroll.log

.......

итд.



Более старые файлы перемещаются в архив, в папку определяющую сервер-источника на сервере Backup, например:

\\Server_Buckup\d$\BackUp\app001\log from ??.??.20??.rar"

\\Server_Buckup\d$\BackUp\app002\log from ??.??.20??.rar"

\\Server_Buckup\d$\BackUp\app003\log from ??.??.20??.rar"

.......

итд.



Задача: собрать определённый логфайл, например: 2020-10-21.gw.uniroll.log, с разных серверов,

на рабочем компьютере в папке, например: Z:\Box_Out в подпапке с именем лога.

В имя файла с логом добавляется имя сервера:

Z:\Box_Out\2020-10-21.gw.uniroll\2020-10-21.gw.uniroll_Server1.log

... 2020-10-21.gw.uniroll_Server2.log

...............

итд.



Если файл старше нескольких дней то поиск осуществляется в архивах:

Например: \\Server_Buckup\d$\BackUp\app001\log from ??.??.20??.rar"

\\Server_Buckup\d$\BackUp\app002\log from ??.??.20??.rar"

\\Server_Buckup\d$\BackUp\app003\log from ??.??.20??.rar"

.......

итд.



Полученную папку заархивировать



Приведенный код хотел подстроить под данную постановку:

Код: Выделить всё

@Echo On

cls

    Call :Together "2020-11-08.uniroll.log"

	

pause

Exit /B



:Together

	Set "AllComp=127.0.0.1 Max-ПК"

	Set "LogFolder=c$\logs"

	



	Set "Backup=d:\BackUp"

[u][i][b]Set "BackupFolder=app001 app002"[/b][/i][/u]	

	Set "Mask=log from ??.??.20??.rar"



	Set "BoxOut=d:\BackUp\Copy"



	Set "Arc=C:\Program Files\WinRAR\Rar.exe"



	If Not Exist "%BoxOut%\%~n1" (

		Md "%BoxOut%\%~n1" ||(Echo Folder "%BoxOut%\%~n1" not created &Pause &Exit /B 1

	)



	

	For %%c In (%AllComp%) Do (	

		>nul 2>&1 Copy "\\%%c\%LogFolder%\%~1" "%BoxOut%\%~n1\%~n1_%%c%~x1"||(

[b][i][u]	For %%b In (%BackupFolder%) Do ([/u][/i][/b]

         	Call :FromRar %1 "%Backup%\%%b" "%BoxOut%\%~n1\%~n1_%%c%~x1"

		) >>1.txt

	Pause		

	                  )

	        )

	)	

	"%Arc%" a -ep1 -hp123 "%BoxOut%\%~nx1.rar" "%BoxOut%\%~n1\*.*"

Pause

	

Exit /B



:FromRar

		

	FOR /F "usebackq delims=" %%a IN (`2^>nul Dir "%~2\%Mask%" /B /A:-D /O:-D /T:W`) DO (

		FOR /F "delims=" %%f IN ('""%Arc%" lb "%~2\%%a"|Find /I %1"') DO (			

			Pushd "%~dp3"

				>nul 2>&1 "%Arc%" e "%~2\%%a" "%%f"

				>nul Move /Y "%%~nxf" "%~nx3"				 

			Popd							

			Exit /B

		)

	)

Exit /B 1



В дополнение:


Цитата KamikadZZe:



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

например:

\\Server1\Logs\2020-10-22.gw.uniroll.log ...2020-10-21.gw.uniroll.log ...2020-10-20.gw.uniroll.log \\Server2\Logs\2020-10-22.gw.uniroll.log ...2020-10-21.gw.uniroll.log ...2020-10-20.gw.uniroll.log

\\Server3\Logs\2020-10-22.gw.uniroll.log ...2020-10-21.gw.uniroll.log ...2020-10-20.gw.uniroll.log

.......

итд.

Более старые файлы перемещаются в архив, в папку определяющую сервер-источника на сервере Backup, например:

\\Server_Buckup\d$\BackUp\app001\log from ??.??.20??.rar"

\\Server_Buckup\d$\BackUp\app002\log from ??.??.20??.rar"

\\Server_Buckup\d$\BackUp\app003\log from ??.??.20??.rar"

.......

итд.
CMD/BAT - [решено] Копирование файлов с одинаковым именем с разных ПК или с backup архива




Файлов 2020-10-22.gw.uniroll.log за определенный день может быть несколько, т.е. происходит дополнительная их нумерация в течении дня.

2020-10-22.gw.uniroll.log - основной

2020-10-22.gw.uniroll_0.log -архивный

2020-10-22.gw.uniroll_1.log -архивный

.......

итд.
Аватара пользователя
megaloman

Re: CMD/BAT - [решено] Копирование файлов с одинаковым именем с разных ПК или с backup архива

Сообщение megaloman »

Цитата KamikadZZe:



Серверы могут идентифицироваться как именами ....так и по IP ... либо в их комбинации[/post]



Это я понимаю.

Server1 192.168.1.208 Server2 Server3 192.168.1.121 192.168.1.15

Не понимаю, как это связано с

app001 app002 app003 app004 app005 app006
Аватара пользователя
KamikadZZe

Re: CMD/BAT - [решено] Копирование файлов с одинаковым именем с разных ПК или с backup архива

Сообщение KamikadZZe »

Цитата megaloman:



Это я понимаю.

Server1 192.168.1.208 Server2 Server3 192.168.1.121 192.168.1.15

Не понимаю, как это связано с

app001 app002 app003 app004 app005 app006
CMD/BAT - [решено] Копирование файлов с одинаковым именем с разных ПК или с backup архива




Доброго времени суток!



Server 1 допустим имеет IP 192.168.1.208 и имя XXXX-XXX-XXX-APP001



Server 2 допустим имеет IP 192.168.1.209 и имя XXXX-XXX-XXX-APP002



.......

и т.д.



поэтому, чтобы не переписывать все длинные названия серверов, условно архивные папки называются:

app001 app002 app003 app004 app005 app006



А при запросах на предоставление логов, кому то не принципиально название и можно просто нумеровать лог (2020-10-22.gw.uniroll_APP001.log, 2020-10-22.gw.uniroll_APP002.log и т.д, или по IP - 2020-10-22.gw.uniroll_192.168.0.208.log, 2020-10-22.gw.uniroll_192.168.0.209.log и т.д.), а кому то принципиально и хотят чтобы в имени лога присутствовало имя сервера 2020-10-22.gw.uniroll_XXXX-XXX-XXX-APP001.log, 2020-10-22.gw.uniroll_XXXX-XXX-XXX-APP002.log и т.д)



Поэтому хотел адаптировать коды (под рабочую среду).



Пытался изменить код сам, но получил не то что хотел!
Аватара пользователя
megaloman

Re: CMD/BAT - [решено] Копирование файлов с одинаковым именем с разных ПК или с backup архива

Сообщение megaloman »

Вот вариант. Ставится реальное имя сервера либо его IP наименованиям условно архивных папок

[spoiler]Код:
[/spoiler]

Код: Выделить всё

@Echo Off
cls
	Call :Together "2020-11-01.gw.uniroll.log"
	Call :Together "2020-11-28.gw.uniroll.log"
	Call :Together "2019-11-28.gw.uniroll.log"
	Call :Together "2020-11-29.gw.uniroll.log"
	Call :Together "2019-11-29.gw.uniroll.log"
pause
Exit /B
:Together
	Set "AllComp=127.0.0.1 LocalHost 192.168.100.23"
	Set "AllRar= app001    app002    app003"
	Set /A N=1000
	For %%i In (%AllRar%) Do (Set /A N+=1 &Call Set "@@Arc%%N%%=%%i")
	Set "LogFolder=C$\Program Files (x86)\Test\Log"
	Set "Backup=\\192.168.100.23\Test2"
	Set "Mask=log from ??20??.rar"
	Set "BoxOut=Z:\Box_Out"
	Set "Arc=C:\Program Files\WinRAR\Rar.exe" 
	If Not Exist "%BoxOut%\%~n1" (
		Md "%BoxOut%\%~n1" ||(Echo Folder "%BoxOut%\%~n1" not created &Pause &Exit /B 1)
	)
	Set /A N=1000
	For %%c In (%AllComp%) Do (
		Set /A N+=1
		>nul 2>&1 Call Copy "\\%%c\%LogFolder%\%~1" "%BoxOut%\%~n1\%~n1_%%N:~1%%_%%c%~x1"||(
			Call :FromRar %1 "%Backup%\%%N%%" "%BoxOut%\%~n1\%~n1_%%N:~1%%_%%c%~x1"
		)
	)
	"%Arc%" a -ep1 -hpPassword "%BoxOut%\%~nx1.rar" "%BoxOut%\%~n1\*.*"
Exit /B
:FromRar
	Call Set "DirRar=%~dp2%%@@Arc%~nx2%%"
	FOR /F "usebackq delims=" %%a IN (`2^>nul Dir "%DirRar%\%Mask%" /B /A:-D /O:-D /T:W`) DO (
		FOR /F "delims=" %%f IN ('""%Arc%" lb "%DirRar%\%%a"|Find /I %1"') DO (
			Pushd "%~dp3"
				>nul 2>&1 "%Arc%" e "%DirRar%\%%a" "%%f"
				>nul Move /Y "%%~nxf" "%~nx3" 
			Popd
			Exit /B
		)
	)
Exit /B 1
Аватара пользователя
KamikadZZe

Re: CMD/BAT - [решено] Копирование файлов с одинаковым именем с разных ПК или с backup архива

Сообщение KamikadZZe »

Доброго времени суток!


Цитата megaloman:



Вот вариант. Ставится реальное имя сервера либо его IP наименованиям условно архивных папок
CMD/BAT - [решено] Копирование файлов с одинаковым именем с разных ПК или с backup архива




Megaloman, благодарю за помощь!

Очень признателен за вашу помощь!!!

Копирование с серверов и из папок с архивами код выполняет на ура.



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


Цитата KamikadZZe:



Файлов 2020-10-22.gw.uniroll.log за определенный день может быть несколько, т.е. происходит дополнительная их нумерация в течении дня.

2020-10-22.gw.uniroll.log - основной

2020-10-22.gw.uniroll_0.log -архивный

2020-10-22.gw.uniroll_1.log -архивный

.......

итд.
CMD/BAT - [решено] Копирование файлов с одинаковым именем с разных ПК или с backup архива




Проверял несколько раз, так и не получилось. :-(
Аватара пользователя
megaloman

Re: CMD/BAT - [решено] Копирование файлов с одинаковым именем с разных ПК или с backup архива

Сообщение megaloman »

Цитата KamikadZZe:



2020-10-22.gw.uniroll.log - основной

2020-10-22.gw.uniroll_0.log -архивный

2020-10-22.gw.uniroll_1.log -архивный
CMD/BAT - [решено] Копирование файлов с одинаковым именем с разных ПК или с backup архива




Где эти файлы? Как в папках для свежих логов, так и в заархивированном виде?

2020-10-22.gw.uniroll.log обязательно есть? А 2020-10-22.gw.uniroll_0.log может быть, а может и не быть?

Постановка ....

Я понимаю так: Сначала создаётся 2020-10-22.gw.uniroll.log

Если необходимо потом следующий 2020-10-22.gw.uniroll_0.log

Если необходимо потом следующий 2020-10-22.gw.uniroll_1.log

и т д


Вот модификация решения под такую постановку

[spoiler]Код:
[/spoiler]

Код: Выделить всё

@Echo Off
cls
	Call :Together "2020-11-01.gw.uniroll.log"
	Call :Together "2020-11-28.gw.uniroll.log"
	Call :Together "2019-11-28.gw.uniroll.log"
	Call :Together "2020-11-29.gw.uniroll.log"
	Call :Together "2019-11-29.gw.uniroll.log"
pause
Exit /B
:Together
	Set "AllComp=127.0.0.1 LocalHost 192.168.100.23"
	Set "AllRar= app001    app002    app003"
	Set /A N=1000
	For %%i In (%AllRar%) Do (Set /A N+=1 &Call Set "@@Arc%%N%%=%%i")
	Set "LogFolder=C$\Program Files (x86)\Test\Log"
	Set "Backup=\\192.168.100.23\Test2"
	Set "Mask=log from ??20??.rar"
	Set "BoxOut=Z:\Box_Out"
	Set "Arc=C:\Program Files\WinRAR\Rar.exe" 
	If Not Exist "%BoxOut%\%~n1" (
		Md "%BoxOut%\%~n1" ||(Echo Folder "%BoxOut%\%~n1" not created &Pause &Exit /B 1)
	)
	Set /A N=1000
	For %%c In (%AllComp%) Do (
		Set /A N+=1
		For %%i In ("\\%%c\%LogFolder%\%~n1_*%~x1") Do >nul 2>&1 Call Copy "%%i" "%BoxOut%\%~n1\%%N:~1%%_%%c_%%~nxi"
		>nul 2>&1 Call Copy "\\%%c\%LogFolder%\%~1" "%BoxOut%\%~n1\%%N:~1%%_%%c_%~1"||(
			Call :FromRar %1 "%Backup%\%%N%%" "%BoxOut%\%~n1" "%%N:~1%%_%%c_"
		)
	)
	"%Arc%" a -ep1 -hpPassword "%BoxOut%\%~nx1.rar" "%BoxOut%\%~n1\*.*"
Exit /B
:FromRar
	Call Set "DirRar=%~dp2%%@@Arc%~nx2%%"
	FOR /F "usebackq delims=" %%a IN (`2^>nul Dir "%DirRar%\%Mask%" /B /A:-D /O:-D /T:W`) DO (
		FOR /F "delims=" %%f IN ('""%Arc%" lb "%DirRar%\%%a"|Find /I %1"') DO (
			Set "NF=%%f"
			Call Set "NF=%%NF:%%~xf=_*%%~xf%%"
			Pushd %3
				>nul 2>&1 Call "%Arc%" e "%DirRar%\%%a" "%%f" "%%NF%%"
				>nul (For %%i In (%1 "%~n1_*%~x1") Do Move /Y %%i "%~4%%~i") 
			Popd
			Exit /B
		)
	)
Exit /B 1
Аватара пользователя
KamikadZZe

Re: CMD/BAT - [решено] Копирование файлов с одинаковым именем с разных ПК или с backup архива

Сообщение KamikadZZe »

Доброго времени суток!


Цитата megaloman:



Вот модификация решения под такую постановку
CMD/BAT - [решено] Копирование файлов с одинаковым именем с разных ПК или с backup архива




Уважаемый Megaloman, благодарю за помощь!
Ответить

Вернуться в «Скриптовые языки администрирования Windows»