Добрый день! Подскажите пожалуйста, а каким образом можно данный bat-файл приспособить к следующей задаче:
Есть контрольный файл в папке C:\111 с названием: "HTIN.txt"
В нем есть контрольные строки вида:
Код:
![Выделить весь код](images/misc/selectcode.png)
C:\222\000047675410000000011122015.XML:
C:\222\000070380710000000011122015.XML:
C:\222\000072491010000000011122015.XML:
C:\222\000072515710000000011122015.XML:
Есть папка C:\111 с файлами: "R22GA.txt" его содержимое:
Код:
![Выделить весь код](images/misc/selectcode.png)
C:\222\000047675410000000011122015.XML: 456
C:\222\000070380710000000011122015.XML: 213
C:\222\000072491010000000011122015.XML: 432
"R23GA.txt"его содержимое:
Код:
![Выделить весь код](images/misc/selectcode.png)
C:\222\000047675410000000011122015.XML: 987
C:\222\000072491010000000011122015.XML: 456
Нужно чтобы скрипт читал из папки C:\111\*.XML файлы
И если находил в них еквивалентную контрольному файлу строчку, то записывал результат следующим образом:
Содержимое "HTIN.txt" после обработки:
Код:
![Выделить весь код](images/misc/selectcode.png)
R22GA R23GA
C:\222\000047675410000000011122015.XML: 456 987
C:\222\000070380710000000011122015.XML: 213
C:\222\000072491010000000011122015.XML: 432 456
C:\222\000072515710000000011122015.XML:
Извините что морочу голову, но излазив все эти ваши интернеты так и не нашел достойного решения. И вот гляжу на этот скрипт по пингу сети и думаю "это ж мое", но как его правильно переделать под свою задачу знаний не хватает =(.
Я понимаю следующее:
Код:
![Выделить весь код](images/misc/selectcode.png)
@Echo off
setLocal EnableExtensions
rem здесь нужно подставить вместо даты и время на название файлов из папки C:\111
set tm=%time::=%
set tm=%tm:~0,-3%
set dt=%date:~8,2%%date:~3,2%%date:~0,2%
rem
for /f "UseBackQ tokens=1,*" %%A in ("%~n0.txt") do call :Ping %%A "%%B"
del /f "%~n0.old" >nul 2>nul
ren "%~n0.txt" *.old 2>nul
ren "%~n0.tmp" *.txt 2>nul
goto END
:Ping
set stat=Faild
if "%1"=="Date" echo Date %dt% %~2>>"%~n0.tmp"&exit /b
if "%1"=="Time" echo Time %tm% %~2>>"%~n0.tmp"&exit /b
rem а вместо команды ping нужно подставить команду которая будет проверять эквивалентность первого столбца в каждом файле со строкой в контрольном файлк и если они будут идентичными то подставлять значение из текущего по списку файла.
ping -n 1 %1 >nul 2>nul
if %ErrorLevel%==0 set stat=Ok
echo %1 %stat% %~2>>"%~n0.tmp"
exit /b
:END