dark-------13
20-01-2015, 09:26
Здравствуйте,
Есть скрипт который пингует сетевые адреса, которые берет из текстового файла my.txt
После выполнения пинга рабочие IP записываются в документ log_speed_v.2.1.txt, а не рабочие в log_speed_bad.txt
Так как на моем компе проблемы с отображением кодировки 866 , было решено вывод конвертить в 1251, так и сделал, но есть проблемка.
Скрипты конвертации лежат в отдельных бат файлах и все работает, но хочется чтобы весь код был в одном бат файле, - подскажите пожалуйста как это сделать ?
Основной скрипт для пингования IP адресов - (лежит в отдельном bat файле)
@echo off
set /a per=0
echo _____________________________________________________________ >log_speed_v.2.1.txt
date /t >>log_speed_v.2.1.txt
time /t >>log_speed_v.2.1.txt
date /t >log_speed_bad.txt
time /t >>log_speed_bad.txt
For /f "tokens=1,2,3 delims=," %%i in (my.txt) do (
set /a per=0
echo %%j >>log_speed_v.2.1.txt
ping %%i -n 1 | find "╬ЄтхЄ" >>log_speed_v.2.1.txt
ping %%i -n 1 | find "TTL=" >>log_speed_v.2.1.txt || if %per% == 0 (
echo %%j BaD
echo __________________ >>log_speed_bad.txt
echo %%i >>log_speed_bad.txt
echo %%j >>log_speed_bad.txt
)
echo %%k
echo ------------------------------------------------------------- >>log_speed_v.2.1.txt
)
date /t >>log_speed_v.2.1.txt
time /t >>log_speed_v.2.1.txt
echo _____________________________________________________________ >>log_speed_v.2.1.txt
call "convert_ok.bat"
call "convert_bad.bat"
@echo off
@echo. >res_ok.txt
for /F "delims=" %%a in (log_speed_v.2.1.txt) do call :convert %%a
:convert
chcp 1251 >nul
echo. %* >>res_ok.txt
chcp 866 >nul
exit /b
@echo off
@echo. >res_bad.txt
for /F "delims=" %%a in (log_speed_bad.txt) do call :convert %%a
:convert
chcp 1251 >nul
echo. %* >>res_bad.txt
chcp 866 >nul
exit /b
Есть скрипт который пингует сетевые адреса, которые берет из текстового файла my.txt
После выполнения пинга рабочие IP записываются в документ log_speed_v.2.1.txt, а не рабочие в log_speed_bad.txt
Так как на моем компе проблемы с отображением кодировки 866 , было решено вывод конвертить в 1251, так и сделал, но есть проблемка.
Скрипты конвертации лежат в отдельных бат файлах и все работает, но хочется чтобы весь код был в одном бат файле, - подскажите пожалуйста как это сделать ?
Основной скрипт для пингования IP адресов - (лежит в отдельном bat файле)
@echo off
set /a per=0
echo _____________________________________________________________ >log_speed_v.2.1.txt
date /t >>log_speed_v.2.1.txt
time /t >>log_speed_v.2.1.txt
date /t >log_speed_bad.txt
time /t >>log_speed_bad.txt
For /f "tokens=1,2,3 delims=," %%i in (my.txt) do (
set /a per=0
echo %%j >>log_speed_v.2.1.txt
ping %%i -n 1 | find "╬ЄтхЄ" >>log_speed_v.2.1.txt
ping %%i -n 1 | find "TTL=" >>log_speed_v.2.1.txt || if %per% == 0 (
echo %%j BaD
echo __________________ >>log_speed_bad.txt
echo %%i >>log_speed_bad.txt
echo %%j >>log_speed_bad.txt
)
echo %%k
echo ------------------------------------------------------------- >>log_speed_v.2.1.txt
)
date /t >>log_speed_v.2.1.txt
time /t >>log_speed_v.2.1.txt
echo _____________________________________________________________ >>log_speed_v.2.1.txt
call "convert_ok.bat"
call "convert_bad.bat"
@echo off
@echo. >res_ok.txt
for /F "delims=" %%a in (log_speed_v.2.1.txt) do call :convert %%a
:convert
chcp 1251 >nul
echo. %* >>res_ok.txt
chcp 866 >nul
exit /b
@echo off
@echo. >res_bad.txt
for /F "delims=" %%a in (log_speed_bad.txt) do call :convert %%a
:convert
chcp 1251 >nul
echo. %* >>res_bad.txt
chcp 866 >nul
exit /b