CMD/BAT - чтение такстового файла и создание текстового с частичным содержанием прочтеного вайл

Ответить
 • Просмотры: 1
Аватара пользователя
Anufriev

CMD/BAT - чтение такстового файла и создание текстового с частичным содержанием прочтеного вайл

Сообщение Anufriev »

добрый день!



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



все работает хорошо, если бы не одно "но", в текстовом файле есть несколько arj архивов, а этот батник видит только один архив



пример текста в файле:


читать дальше »


‚ ѓ“ Ѓ**Є* ђ®ббЁЁ Ї® Ќ®ў®бЁЎЁабЄ®© ®Ў«*бвЁ ®Ў*®ў«Ґ*л бЇа*ў®з*ЁЄЁ:

EE_AGENT.DBF ў б®бв*ўҐ ee_dat.arj

EE_BKVID.DBF ў б®бв*ўҐ ee_dat.arj

EE_SR.DBF ў б®бв*ўҐ ee_dat.arj

EE_SRTIP.DBF ў б®бв*ўҐ ee_dat.arj

EE_SRVID.DBF ў б®бв*ўҐ ee_dat.arj

EE_STAKO.DBF ў б®бв*ўҐ ee_dat.arj

HDRUS_TU.DBF ў б®бв*ўҐ hd_list.arj

HD_LIST.DBF ў б®бв*ўҐ hd_list.arj

HD_OKATO.DBF ў б®бв*ўҐ hd_list.arj

PK_SRNET.DBF ў б®бв*ўҐ ee_dat.arj

REGFAULT.dbf ў б®бв*ўҐ regfault.arj

ЋЎ*®ўЁвҐ ‚*иЁ бЇа*ў®з*ЁЄЁ Ќ‘€ ў Џ’Љ Џ‘„ Ё§ Є*в*«®Ј* public





что необходимо дописать в батник, что бы он выдавал файл с таким содержанием:


читать дальше »


get public regfault.arj

get public ee_dat.arj

get public hd_list.arj





и ждал поступление всех архивов, только после этого начинал их распаковывать?



собственно сам батник:



Код:

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

@Echo Off
rem Пути
Set ReadPath=D:\test
Set GetPath=D:\test\get
Set ARJPath=D:\test\arj
rem Таймаут проверки файлов, в секундах
Set Timeout=10
Set /A Timeout+=1
If Not Exist "%ReadPath%" Echo Error - Directory not found&Exit /B 1
rem Подготавливаем структуру директорий
If Not Exist "%GetPath%" MD "%GetPath%"
:Loop
Set ARJName=&Set NFOName=
rem Поиск файла
For /F "delims=" %%F In ('Dir "%ReadPath%\upd_nsi*.*" /B') Do (
    Set NFOName=%%F
rem Поиск в найденном строки с архивом 
    For /F "delims=" %%S In ('Findstr /R /I /C:"\" "%ReadPath%\%%F"') Do (
rem Разбор строки на составляющие, вычленение имени архива
        For %%A In (%%S) Do (
            Echo %%A|Find /I "arj">nul&&Set ARJName=%%A
        )
    )
)
If Defined ARJName (
    Echo Found %NFOName%, processing...
rem Создаем get-файл
    Echo get public %ARJName%>"%GetPath%\get.txt"
rem Перемещаем обработанный файл, чтобы исключить повторное прочтение
rem Если в системе установлен другой формат даты - исправить.
    For /F "tokens=1,2,3 delims=." %%A In ("%Date%") Do (
        If Not Exist "%ReadPath%\%%C.%%B.%%A" MD "%ReadPath%\%%C.%%B.%%A"
        Move "%ReadPath%\%NFOName%" "%ReadPath%\%%C.%%B.%%A\%NFOName%"
    )
:WaitForARJ
rem Распаковка архива, или ожидание, если он ещё не появился
    If Exist "%ARJPath%\%ARJName%" (
        c:\arj32\ARJ32.EXE e D:\test\arj\*.arj D:\test\arj\
        Echo Archive %ARJName% successfuly extracted
    ) Else (
        Echo Waiting for ARJ in %ARJPath%
        Ping -n %Timeout% 127.0.0.1>nul
        GoTo WaitForARJ
		del D:\test\arj\*.arj
    )
)
rem Уход на новую итерацию после таймаута
Cls&Echo Scanning %ReadPath%...
Ping -n %Timeout% 127.0.0.1>nul
GoTo Loop
Аватара пользователя
Anufriev

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

Сообщение Anufriev »

товарищи, скажите, это не возможно сделать по средствам бат или это сложно сделать или я просто не понятно описал проблемку?
Ответить

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