CMD/BAT - Батник копирующий и перемещающий файлы по маске в заданные каталоги

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

Re: CMD/BAT - Батник копирующий и перемещающий файлы по маске в заданные каталоги

Сообщение KamikadZZe »

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

С написанием батников знаком, но не очень силен

Есть батник написанный мной:



@Echo On



setlocal enableextensions enabledelayedexpansion



cls



path c:\windows\system32



Set sourcedir=e:\Rabota\GNI\OUT\

Set sourcedir1=e:\Rabota\GNI\OUT\A\

Set sourcedir2=e:\Rabota\GNI\OUT\AN\

Set sourcedir3=e:\Rabota\GNI\OUT\BN\

Set sourcedir_arh=e:\Rabota\GNI\OUT\Arhiv\

Set destdir1=d:\Rabota\GNI_Test\ARHIV\

Set destdir2=e:\Rabota\GNI\ARHIV\

Set log=d:\Rabota\GNI_Test\Log\

Set files1=SBC*.txt

Set files2=SBC*.xml

Set files3=SFC*.xml



for /f "tokens=1-3*" %%a in ('dir "%sourcedir%%files1%" /b /s /a-d') do (

if %%a==%files1% Exist (

if not exist "%destdir1%%Date%\ES\A" md "%destdir1%%Date%\ES\A"

if not exist "%destdir2%%Date%\ES\A" md "%destdir2%%Date%\ES\A"

if not exist "%sourcedir_arh%%Date%\ES\A" md "%sourcedir_arh%%Date%\ES\A"

xcopy %%a %destdir1%%Date%\ES\A\ /H /Y /C /R /S /Z /EXCLUDE:d:\Rabota\GNI_test\listnotcopy.txt

xcopy %%a %destdir2%%Date%\ES\A\ /H /Y /C /R /S /Z /EXCLUDE:d:\Rabota\GNI_test\listnotcopy.txt >> %log%log_%date%.txt

Date /t >> %log%log_%date%.txt

Time /t >> %log%log_%date%.txt )

move %sourcedir1%%files1% "%sourcedir_arh%"%Date%\ES\A\ >> %log%log_%date%.txt

Date /t >> %log%log_%date%.txt

Time /t >> %log%log_%date%.txt

) else (

for /f "tokens=1-3*" %%b in ('dir "%sourcedir%%files2%" /b /s /a-d') do (

if %%b==%files2% Exist (

if not exist "%destdir1%%Date%\ES\AN" md "%destdir1%%Date%\ES\AN"

if not exist "%destdir2%%Date%\ES\AN" md "%destdir2%%Date%\ES\AN"

if not exist "%sourcedir_arh%%Date%\ES\AN" md "%sourcedir_arh%%Date%\ES\AN"

xcopy %%b %destdir1%%Date%\ES\AN\ /H /Y /C /R /S /Z /EXCLUDE:d:\Rabota\GNI_test\listnotcopy.txt

xcopy %%b %destdir2%%Date%\ES\AN\ /H /Y /C /R /S /Z /EXCLUDE:d:\Rabota\GNI_test\listnotcopy.txt >> %log%log_%date%.txt

Date /t >> %log%log_%date%.txt

Time /t >> %log%log_%date%.txt )

move %sourcedir2%%files2% "%sourcedir_arh%"%Date%\ES\AN\ >> %log%log_%date%.txt

Date /t >> %log%log_%date%.txt

Time /t >> %log%log_%date%.txt

) else (

for /f "tokens=1-3*" %%c in ('dir "%sourcedir%%files3%" /b /s /a-d') do (

if %%c==%files3% Exist (

if not exist "%destdir1%%Date%\ES\BN" md "%destdir1%%Date%\ES\BN"

if not exist "%destdir2%%Date%\ES\BN" md "%destdir2%%Date%\ES\BN"

if not exist "%sourcedir_arh%%Date%\ES\BN" md "%sourcedir_arh%%Date%\ES\BN"

xcopy %%c %destdir1%%Date%\ES\BN\ /H /Y /C /R /S /Z /EXCLUDE:d:\Rabota\GNI_test\listnotcopy.txt

xcopy %%c %destdir2%%Date%\ES\BN\ /H /Y /C /R /S /Z /EXCLUDE:d:\Rabota\GNI_test\listnotcopy.txt >> %log%log_%date%.txt

Date /t >> %log%log_%date%.txt

Time /t >> %log%log_%date%.txt )

move %sourcedir3%%files3% "%sourcedir_arh%"%Date%\ES\BN\ >> %log%log_%date%.txt

Date /t >> %log%log_%date%.txt

Time /t >> %log%log_%date%.txt

)



if not exist "%destdir1%%Date%\TF" md "%destdir1%%Date%\TF" >> %log%log_%date%.txt

Date /t >> %log%log_%date%.txt

Time /t >> %log%log_%date%.txt



Он просматривает каталог с подкаталогами на наличие файлов и копирует/перемещает файлы с определенной маской в определенный подкаталог.

Т.е. производит разбор файлов по каталогам.

Помогите пожалуйста исправить или дописать его так, чтобы батник сканировал все файлы в каталоге с масками (не зависимо от подкаталога где этот файл лежит) и

сортировал их (копировал/перемещал) в другое место в определенные подкаталоги. Так же хотелось бы ускорить работу этого батника.
Аватара пользователя
KamikadZZe

CMD/BAT - Батник копирующий и перемещающий файлы по маске в заданные каталоги

Сообщение KamikadZZe »

Цитата KamikadZZe:



Есть батник написанный мной:
CMD/BAT - Батник копирующий и перемещающий файлы по маске в заданные каталоги




Освойте использование тэга

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

[/url].



Вы уверены, что код работоспособен? Я вижу несогласованные операторные скобки.
Аватара пользователя
Iska

Re: CMD/BAT - Батник копирующий и перемещающий файлы по маске в заданные каталоги

Сообщение Iska »

Код работал, сортировка проводилась.





Код:

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

@Echo On
setlocal enableextensions enabledelayedexpansion
cls
path c:\windows\system32
Set sourcedir=e:\Rabota\GNI\OUT\
Set sourcedir1=e:\Rabota\GNI\OUT\A\
Set sourcedir2=e:\Rabota\GNI\OUT\AN\
Set sourcedir3=e:\Rabota\GNI\OUT\BN\
Set sourcedir_arh=e:\Rabota\GNI\OUT\Arhiv\
Set destdir1=d:\Rabota\GNI_Test\ARHIV\
Set destdir2=e:\Rabota\GNI\ARHIV\
Set log=d:\Rabota\GNI_Test\Log\
Set files1=SBC*.txt
Set files2=SBC*.xml
Set files3=SFC*.xml
for /f "tokens=1-3*" %%a in ('dir "%sourcedir%%files1%" /b /s /a-d') do (
if %%a==%files1% Exist (
if not exist "%destdir1%%Date%\ES\A" md "%destdir1%%Date%\ES\A"
if not exist "%destdir2%%Date%\ES\A" md "%destdir2%%Date%\ES\A"
if not exist "%sourcedir_arh%%Date%\ES\A" md "%sourcedir_arh%%Date%\ES\A"
xcopy %%a %destdir1%%Date%\ES\A\ /H /Y /C /R /S /Z /EXCLUDE:d:\Rabota\GNI_test\listnotcopy.txt 
xcopy %%a %destdir2%%Date%\ES\A\ /H /Y /C /R /S /Z /EXCLUDE:d:\Rabota\GNI_test\listnotcopy.txt >> %log%log_%date%.txt 
Date /t >> %log%log_%date%.txt
Time /t >> %log%log_%date%.txt )
move %sourcedir1%%files1% "%sourcedir_arh%"%Date%\ES\A\ >> %log%log_%date%.txt
Date /t >> %log%log_%date%.txt
Time /t >> %log%log_%date%.txt
) else ( 
for /f "tokens=1-3*" %%b in ('dir "%sourcedir%%files2%" /b /s /a-d') do (
if %%b==%files2% Exist (
if not exist "%destdir1%%Date%\ES\AN" md "%destdir1%%Date%\ES\AN"
if not exist "%destdir2%%Date%\ES\AN" md "%destdir2%%Date%\ES\AN"
if not exist "%sourcedir_arh%%Date%\ES\AN" md "%sourcedir_arh%%Date%\ES\AN"
xcopy %%b %destdir1%%Date%\ES\AN\ /H /Y /C /R /S /Z /EXCLUDE:d:\Rabota\GNI_test\listnotcopy.txt 
xcopy %%b %destdir2%%Date%\ES\AN\ /H /Y /C /R /S /Z /EXCLUDE:d:\Rabota\GNI_test\listnotcopy.txt >> %log%log_%date%.txt 
Date /t >> %log%log_%date%.txt
Time /t >> %log%log_%date%.txt )
move %sourcedir2%%files2% "%sourcedir_arh%"%Date%\ES\AN\ >> %log%log_%date%.txt
Date /t >> %log%log_%date%.txt
Time /t >> %log%log_%date%.txt
) else (
for /f "tokens=1-3*" %%c in ('dir "%sourcedir%%files3%" /b /s /a-d') do (
if %%c==%files3% Exist (
if not exist "%destdir1%%Date%\ES\BN" md "%destdir1%%Date%\ES\BN"
if not exist "%destdir2%%Date%\ES\BN" md "%destdir2%%Date%\ES\BN"
if not exist "%sourcedir_arh%%Date%\ES\BN" md "%sourcedir_arh%%Date%\ES\BN"
xcopy %%c %destdir1%%Date%\ES\BN\ /H /Y /C /R /S /Z /EXCLUDE:d:\Rabota\GNI_test\listnotcopy.txt 
xcopy %%c %destdir2%%Date%\ES\BN\ /H /Y /C /R /S /Z /EXCLUDE:d:\Rabota\GNI_test\listnotcopy.txt >> %log%log_%date%.txt 
Date /t >> %log%log_%date%.txt
Time /t >> %log%log_%date%.txt )
move %sourcedir3%%files3% "%sourcedir_arh%"%Date%\ES\BN\ >> %log%log_%date%.txt
Date /t >> %log%log_%date%.txt
Time /t >> %log%log_%date%.txt	
)
if not exist "%destdir1%%Date%\TF" md "%destdir1%%Date%\TF" >> %log%log_%date%.txt
Date /t >> %log%log_%date%.txt
Time /t >> %log%log_%date%.txt
Аватара пользователя
KamikadZZe

Re: CMD/BAT - Батник копирующий и перемещающий файлы по маске в заданные каталоги

Сообщение KamikadZZe »

Код работал, сортировка проводилась.





Код:

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

@Echo On
setlocal enableextensions enabledelayedexpansion
cls
path c:\windows\system32
Set sourcedir=e:\Rabota\GNI\OUT\
Set sourcedir1=e:\Rabota\GNI\OUT\A\
Set sourcedir2=e:\Rabota\GNI\OUT\AN\
Set sourcedir3=e:\Rabota\GNI\OUT\BN\
Set sourcedir_arh=e:\Rabota\GNI\OUT\Arhiv\
Set destdir1=d:\Rabota\GNI_Test\ARHIV\
Set destdir2=e:\Rabota\GNI\ARHIV\
Set log=d:\Rabota\GNI_Test\Log\
Set files1=SBC*.txt
Set files2=SBC*.xml
Set files3=SFC*.xml
for /f "tokens=1-3*" %%a in ('dir "%sourcedir%%files1%" /b /s /a-d') do (
if %%a==%files1% Exist (
if not exist "%destdir1%%Date%\ES\A" md "%destdir1%%Date%\ES\A"
if not exist "%destdir2%%Date%\ES\A" md "%destdir2%%Date%\ES\A"
if not exist "%sourcedir_arh%%Date%\ES\A" md "%sourcedir_arh%%Date%\ES\A"
xcopy %%a %destdir1%%Date%\ES\A\ /H /Y /C /R /S /Z /EXCLUDE:d:\Rabota\GNI_test\listnotcopy.txt 
xcopy %%a %destdir2%%Date%\ES\A\ /H /Y /C /R /S /Z /EXCLUDE:d:\Rabota\GNI_test\listnotcopy.txt >> %log%log_%date%.txt 
Date /t >> %log%log_%date%.txt
Time /t >> %log%log_%date%.txt )
move %sourcedir1%%files1% "%sourcedir_arh%"%Date%\ES\A\ >> %log%log_%date%.txt
Date /t >> %log%log_%date%.txt
Time /t >> %log%log_%date%.txt
) else ( 
for /f "tokens=1-3*" %%b in ('dir "%sourcedir%%files2%" /b /s /a-d') do (
if %%b==%files2% Exist (
if not exist "%destdir1%%Date%\ES\AN" md "%destdir1%%Date%\ES\AN"
if not exist "%destdir2%%Date%\ES\AN" md "%destdir2%%Date%\ES\AN"
if not exist "%sourcedir_arh%%Date%\ES\AN" md "%sourcedir_arh%%Date%\ES\AN"
xcopy %%b %destdir1%%Date%\ES\AN\ /H /Y /C /R /S /Z /EXCLUDE:d:\Rabota\GNI_test\listnotcopy.txt 
xcopy %%b %destdir2%%Date%\ES\AN\ /H /Y /C /R /S /Z /EXCLUDE:d:\Rabota\GNI_test\listnotcopy.txt >> %log%log_%date%.txt 
Date /t >> %log%log_%date%.txt
Time /t >> %log%log_%date%.txt )
move %sourcedir2%%files2% "%sourcedir_arh%"%Date%\ES\AN\ >> %log%log_%date%.txt
Date /t >> %log%log_%date%.txt
Time /t >> %log%log_%date%.txt
) else (
for /f "tokens=1-3*" %%c in ('dir "%sourcedir%%files3%" /b /s /a-d') do (
if %%c==%files3% Exist (
if not exist "%destdir1%%Date%\ES\BN" md "%destdir1%%Date%\ES\BN"
if not exist "%destdir2%%Date%\ES\BN" md "%destdir2%%Date%\ES\BN"
if not exist "%sourcedir_arh%%Date%\ES\BN" md "%sourcedir_arh%%Date%\ES\BN"
xcopy %%c %destdir1%%Date%\ES\BN\ /H /Y /C /R /S /Z /EXCLUDE:d:\Rabota\GNI_test\listnotcopy.txt 
xcopy %%c %destdir2%%Date%\ES\BN\ /H /Y /C /R /S /Z /EXCLUDE:d:\Rabota\GNI_test\listnotcopy.txt >> %log%log_%date%.txt 
Date /t >> %log%log_%date%.txt
Time /t >> %log%log_%date%.txt )
move %sourcedir3%%files3% "%sourcedir_arh%"%Date%\ES\BN\ >> %log%log_%date%.txt
Date /t >> %log%log_%date%.txt
Time /t >> %log%log_%date%.txt	
)
if not exist "%destdir1%%Date%\TF" md "%destdir1%%Date%\TF" >> %log%log_%date%.txt
Date /t >> %log%log_%date%.txt
Time /t >> %log%log_%date%.txt
Аватара пользователя
KamikadZZe

Re: CMD/BAT - Батник копирующий и перемещающий файлы по маске в заданные каталоги

Сообщение KamikadZZe »

Else предполагалось использовать с оператором "IF", а не с командой "For".

Ошибка вышла со скобками.

Потому то, что с "else", что без "else" и выполняется у меня одинаково.

"Else" я убрал.

Так вроде бы все работает.

Не поможете довести до ума код?





Код:

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

@Echo On
setlocal enableextensions enabledelayedexpansion
cls
path c:\windows\system32
Set sourcedir=c:\Rabota\GNI\OUT\
Set sourcedir1=c:\Rabota\GNI\OUT\A\
Set sourcedir2=c:\Rabota\GNI\OUT\AN\
Set sourcedir3=c:\Rabota\GNI\OUT\BN\
Set sourcedir_arh=c:\Rabota\GNI\OUT\Arhiv\
Set destdir1=d:\Rabota\GNI\ARHIV\
Set destdir2=c:\Rabota\GNI\ARHIV\
Set log=d:\Rabota\GNI\Log\
Set files1=SBC*.txt
Set files2=SBC*.xml
Set files3=SFC*.xml
for /f "tokens=1-3*" %%a in ('dir "%sourcedir%%files1%" /b /s /a-d') do (
    if %%a==%files1% Exist (
			if not exist "%destdir1%%Date%\ES\A" md "%destdir1%%Date%\ES\A"
			if not exist "%destdir2%%Date%\ES\A" md "%destdir2%%Date%\ES\A"
			if not exist "%sourcedir_arh%%Date%\ES\A" md "%sourcedir_arh%%Date%\ES\A"
	xcopy %%a %destdir1%%Date%\ES\A\  /H /Y /C /R /S /Z /EXCLUDE:d:\Rabota\GNI\listnotcopy.txt  
	xcopy %%a %destdir2%%Date%\ES\A\  /H /Y /C /R /S /Z /EXCLUDE:d:\Rabota\GNI\listnotcopy.txt >> %log%log_%date%.txt 
		Date /t >> %log%log_%date%.txt
		Time /t >> %log%log_%date%.txt )
		move %sourcedir1%%files1% "%sourcedir_arh%"%Date%\ES\A\ >> %log%log_%date%.txt
		Date /t >> %log%log_%date%.txt
		Time /t >> %log%log_%date%.txt
		)  
for /f "tokens=1-3*" %%b in ('dir "%sourcedir%%files2%" /b /s /a-d') do (
    if  %%b==%files2% Exist (
			if not exist "%destdir1%%Date%\ES\AN" md "%destdir1%%Date%\ES\AN"
			if not exist "%destdir2%%Date%\ES\AN" md "%destdir2%%Date%\ES\AN"
			if not exist "%sourcedir_arh%%Date%\ES\AN" md "%sourcedir_arh%%Date%\ES\AN"
	xcopy %%b %destdir1%%Date%\ES\AN\  /H /Y /C /R /S /Z /EXCLUDE:d:\Rabota\GNI\listnotcopy.txt  
	xcopy %%b %destdir2%%Date%\ES\AN\  /H /Y /C /R /S /Z /EXCLUDE:d:\Rabota\GNI\listnotcopy.txt >> %log%log_%date%.txt 
		Date /t >> %log%log_%date%.txt
		Time /t >> %log%log_%date%.txt )
		move %sourcedir2%%files2% "%sourcedir_arh%"%Date%\ES\AN\ >> %log%log_%date%.txt
		Date /t >> %log%log_%date%.txt
		Time /t >> %log%log_%date%.txt
		) 
for /f "tokens=1-3*" %%c in ('dir "%sourcedir%%files3%" /b /s /a-d') do (
    if  %%c==%files3% Exist (
			if not exist "%destdir1%%Date%\ES\BN" md "%destdir1%%Date%\ES\BN"
			if not exist "%destdir2%%Date%\ES\BN" md "%destdir2%%Date%\ES\BN"
			if not exist "%sourcedir_arh%%Date%\ES\BN" md "%sourcedir_arh%%Date%\ES\BN"
	xcopy %%c %destdir1%%Date%\ES\BN\  /H /Y /C /R /S /Z /EXCLUDE:d:\Rabota\GNI\listnotcopy.txt  
	xcopy %%c %destdir2%%Date%\ES\BN\  /H /Y /C /R /S /Z /EXCLUDE:d:\Rabota\GNI\listnotcopy.txt >> %log%log_%date%.txt 
		Date /t >> %log%log_%date%.txt
		Time /t >> %log%log_%date%.txt )
		move %sourcedir3%%files3% "%sourcedir_arh%"%Date%\ES\BN\ >> %log%log_%date%.txt
		Date /t >> %log%log_%date%.txt
		Time /t >> %log%log_%date%.txt	
			)
	if not exist "%destdir1%%Date%\TF" md "%destdir1%%Date%\TF" >> %log%log_%date%.txt
	Date /t >> %log%log_%date%.txt
	Time /t >> %log%log_%date%.txt

Хотелось бы осуществить поиск в каталоге с подкаталогами файлов по маскам "files1", "files2","files3", чтобы не зависимо от того в каком каталоге файл будет лежать, копировался/перемещался в нужный.

Т.е. файл с маской "files1" копировался/перемещался бы в каталог A,

файл с маской "files2" копировался/перемещался бы в каталог AN,

файл с маской "files3" копировался/перемещался бы в каталог BN
Аватара пользователя
megaloman

Re: CMD/BAT - Батник копирующий и перемещающий файлы по маске в заданные каталоги

Сообщение megaloman »

Цитата megaloman:



подвиг уважаемого Iska, вникнувшего в Ваш код, повторить не берусь.
CMD/BAT - Батник копирующий и перемещающий файлы по маске в заданные каталоги




Изображение Улыбнуло...



Я тоже не смог понять синтаксис таких строк:

Код:

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

if %%a==%files1% Exist (
Аватара пользователя
gora

Re: CMD/BAT - Батник копирующий и перемещающий файлы по маске в заданные каталоги

Сообщение gora »

Задание такого рода:

Допустим есть файлы: SBCXXXXXXX_XXXXXXXXXX_XXXXXXXXXX_XXX.txt, SBCXXXXXXX_XXXXXXXXXX_XXXXXXXXXX_XXX.xml, SBFXXXXXXX_XXXXXXXXXX_XXXXXXXXXX_XXX.xml. Они создаются программой и выкладываются подкаталоги "A", "AN", "BN" в общем каталоге "GNI" на сервере ( в "A"->sbc*.txt и т.д. по порядку) В папке "GNI" на сервере есть еще подкаталог "Arhiv" в который перемещаются скопированные файлы.

Вначале стояла задача копировать эти файлы на 2-а других компа по сети в папку "GNI" сохраняя подкаталоги, а затем перемещать эти файлы в "Arhiv". Чтобы исключить перекопирование подкаталога "Arhiv" в xcopy был добавлен listnotcopy.txt.

В

Код:

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

 if %%a==%files1% Exist (

должно осуществляться сравнение файла по маске и затем, если файл совпадает с маской, т.е. файл в каталоге на сервере SBCXXXXXXX_XXXXXXXXXX_XXXXXXXXXX_XXX.txt совпадает с маской, то создается подкаталог на компах и происходит копирование этого файла в созданый подкаталог. Если файла нет или не совпадает с маской то подкаталог не создается.

На сравнение, копирование файлов по маске в коде приведенном мной уходит не менее 2-х-5 мин, т.к. в подкаталоге "Arhiv" много файлов.

Хотелось бы ускорить этот процесс.

Т.к. не исключено что после обновления программа потеряет пути (случалось такое) и выгрузит файлы в корень "GNI" или что хуже перепутает подкаталоги для выгрузки хотелось бы чтобы код проверял каталог "GNI" вместе с подкаталогами (т.е. "A"-> на наличае файлов по маскам sbc.txt, sbc.xml, sbf.xml,"AN" -> на наличае файлов по маскам sbc.txt, sbc.xml, sbf.xml, "BN"-> на наличае файлов по маскам sbc.txt, sbc.xml, sbf.xml), создавал подкаталоги если имеются файлы совпадающие с маской и копировал их в определенные подкаталоги (т.е. в "A"-> только файлы sbc.txt, "AN" -> только файлы sbc.xml, "BN"-> только файлы sbf.xml ).
Аватара пользователя
KamikadZZe

Re: CMD/BAT - Батник копирующий и перемещающий файлы по маске в заданные каталоги

Сообщение KamikadZZe »

Задание такого рода:

Допустим есть файлы: SBCXXXXXXX_XXXXXXXXXX_XXXXXXXXXX_XXX.txt, SBCXXXXXXX_XXXXXXXXXX_XXXXXXXXXX_XXX.xml, SBFXXXXXXX_XXXXXXXXXX_XXXXXXXXXX_XXX.xml. Они создаются программой и выкладываются подкаталоги "A", "AN", "BN" в общем каталоге "GNI" на сервере ( в "A"->sbc*.txt и т.д. по порядку) В папке "GNI" на сервере есть еще подкаталог "Arhiv" в который перемещаются скопированные файлы.

Вначале стояла задача копировать эти файлы на 2-а других компа по сети в папку "GNI" сохраняя подкаталоги, а затем перемещать эти файлы в "Arhiv". Чтобы исключить перекопирование подкаталога "Arhiv" в xcopy был добавлен listnotcopy.txt.

В

Код:

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

 if %%a==%files1% Exist (

должно осуществляться сравнение файла по маске и затем, если файл совпадает с маской, т.е. файл в каталоге на сервере SBCXXXXXXX_XXXXXXXXXX_XXXXXXXXXX_XXX.txt совпадает с маской, то создается подкаталог на компах и происходит копирование этого файла в созданый подкаталог. Если файла нет или не совпадает с маской то подкаталог не создается.

На сравнение, копирование файлов по маске в коде приведенном мной уходит не менее 2-х-5 мин, т.к. в подкаталоге "Arhiv" много файлов.

Хотелось бы ускорить этот процесс.

Т.к. не исключено что после обновления программа потеряет пути (случалось такое) и выгрузит файлы в корень "GNI" или что хуже перепутает подкаталоги для выгрузки хотелось бы чтобы код проверял каталог "GNI" вместе с подкаталогами (т.е. "A"-> на наличае файлов по маскам sbc.txt, sbc.xml, sbf.xml,"AN" -> на наличае файлов по маскам sbc.txt, sbc.xml, sbf.xml, "BN"-> на наличае файлов по маскам sbc.txt, sbc.xml, sbf.xml), создавал подкаталоги если имеются файлы совпадающие с маской и копировал их в определенные подкаталоги (т.е. в "A"-> только файлы sbc.txt, "AN" -> только файлы sbc.xml, "BN"-> только файлы sbf.xml ).
Аватара пользователя
umagonj

Re: CMD/BAT - Батник копирующий и перемещающий файлы по маске в заданные каталоги

Сообщение umagonj »

Знала бы налоговая что вы с их файлами творите...

у меня все файлы идут по умолчанию в А



про маску:

call :movefilter 3 b

call :movefilter 4 b

call :movefilter ? a



:movefilter

move /y "%MSG_out_folder%SEND\SBC*_%1??.txt" "%script_root%%2\" >> "%script_root%logs\311p.log"

exit /b



т.е если %1 будет 3 или 4 то в B , прочее идет в А.

про AN - сделал отдельным аналогичным батником , нисколько не жалею





но самый интересный вопрос - зачем вам и старый и новый метод сообщений в налоговую? разве сейчас все масссово не переходят на хмл ?
Ответить

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