Форум программистов, компьютерный форум, киберфорум
Наши страницы

Batch (CMD/BAT)

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.74
My_Trinity
2 / 2 / 0
Регистрация: 05.10.2012
Сообщений: 12
#1

Отображение содержимого текстового документа, расположенного в Интернете - CMD/BAT

06.10.2012, 22:13. Просмотров 2479. Ответов 17
Метки нет (Все метки)

Здравствуйте, Ув. Пользователи!
Подскажите пожалуйста, как сделать так, чтобы батник отобразил содержимое текстового документа, который лежит к примеру на http://ucoz.ru/названиефайла.txt

Знаю, что можно открыть данную страницу через браузер таким образом
start http://ucoz.ru/названиефайла.txt , но мне нужно чтобы содержимое показывалось в самом батнике. Если такое возможно напишите пожалуйста как. Заранее благодарю!

Добавлено через 4 часа 10 минут
Ребят, если это не возможно скажите пожалуйста... если можно, то как?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.10.2012, 22:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Отображение содержимого текстового документа, расположенного в Интернете (CMD/BAT):

Редактирование содержимого текстового файла - CMD/BAT
Доброе время суток, Уважаемые знатоки! Такая ситуация есть txt файл (допустим files.txt) с таким содержимым: ...

Редактирование содержимого текстового файла - CMD/BAT
Есть текстовый файлик типа: первая строка вторая строка третья строка четвертая строка пятая строка шестая строка седьмая...

Запись содержимого текстового файла в переменную - CMD/BAT
Здравствуйте, подскажите пожалуйста как мне считать все данные из txt файла в переменную? главное что бы он так же их и выдал с переменной....

Способы отображения содержимого текстового файла в консоли - CMD/BAT
Всем привет. Помогите пожалуйста. Нужно отобразить содержимое текстового файла в командной строке. НЕСКОЛЬКИМИ СПОСОБАМИ. Прошу помочь)....

Преобразование содержимого текстового файла в HTML-таблицу - CMD/BAT
Приветствую всех, подскажите пожалуйста через какие команды можно преобразовать текстовик в юникоде. В текстовом файле таблица, только в...

Отображение содержимого папки в cmd - CMD/BAT
Здравствуйте, участники форума! Команда dir отображает всё содержимое каталога. Вопрос: Как отобразить, допустим, 6 первых файлов?

17
sov44
1754 / 738 / 126
Регистрация: 09.04.2011
Сообщений: 1,312
06.10.2012, 22:49 #2
My_Trinity, конечно возможно. Алгоритм:
- скачать файл (например с помощью wget)
- построчно вывести в echo содержимое текстового файла
- удалить файл
1
My_Trinity
2 / 2 / 0
Регистрация: 05.10.2012
Сообщений: 12
07.10.2012, 11:58  [ТС] #3
Извените, а не могли Вы бы на примере показать, а то не понял как...
Вот к примеру файл - http://updater-newbx.at.ua/DATA.txt
Как сделать чтобы батник читал содержимое, если его изменили (содержимое этого DATA.txt) при след. запуске батнике была новая информация, просто чтение и вывод текста в реальном режиме, как-то так) Если что-то не понятно написал извените)
0
sov44
1754 / 738 / 126
Регистрация: 09.04.2011
Сообщений: 1,312
07.10.2012, 15:10 #4
Проблему вызвала кодировка текстового файла (UTF8), поэтому пришлось прибегнуть к сторонней утилите win_iconv.exe
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
@echo off
 
set sURL=http://updater-newbx.at.ua/DATA.txt
if not exist "%SystemDrive%\Проба" md "%SystemDrive%\Проба"
 
call :GetTemporaryName
::Echo. &Echo Cкачивание &>"%TemporaryName%" 2>&1 %~dp0wget.exe -N -P "%SystemDrive%\Проба" "%sURL%" &&(
>"%TemporaryName%" 2>&1 %~dp0wget.exe -N -P "%SystemDrive%\Проба" "%sURL%" &&(
        findstr.exe /r /c:"^Server file no newer than local file .* -- not retrieving.$" "%TemporaryName%" >nul &&(
echo.
echo              Обновления Data.txt нет^!
ping 127.0.0.1 -n 6 >nul
    ) || (
win_iconv.exe -f UTF8 -t cp866 "%SystemDrive%\Проба\DATA.txt">"866_data.txt"
For /F "usebackq eol= delims=" %%a in ("866_data.txt") do echo %%a
pause >nul
    )
)
              
del /f /q "%TemporaryName%" 2>nul
del /f /q 866_data.txt 2>nul
 
endlocal
exit /b 0
 
:GetTemporaryName
    setlocal enableextensions enabledelayedexpansion
 
:NextName
    set sTempName=%temp%\temp%random%.tmp
    if exist "%sTempName%" goto :NextName
    set sProcName=%~0
    endlocal & set %sProcName:~4%=%sTempName%
    exit /b 0
Во вложении скрипт и доп. утилиты. Пробуйте.
п.с. немного поправил код в окне )))
п.п.с. на базе кода iska (oszone)
2
Вложения
Тип файла: 7z 11.7z (394.0 Кб, 24 просмотров)
My_Trinity
2 / 2 / 0
Регистрация: 05.10.2012
Сообщений: 12
07.10.2012, 16:11  [ТС] #5
sov44, огромное спасибо. А можно как-то сделать чтобы всегда текст показывался, ну тоесть если в нем что-то изменилось то со след. раза был новый текст, а то в данном случае получается так: первый раз открываю пишет текст который в этом файле, а когда 2 раз открываю пишет "Обновления Data.txt нет^! "
P.S. Еще раз благодарю, я б не догадался никогда)
P.S.S А кодировка должна быть OEM 866?

Добавлено через 13 минут
Извените а можно еще как-то изменить title (т.к. оно не реагирует на эту команду)
0
sov44
1754 / 738 / 126
Регистрация: 09.04.2011
Сообщений: 1,312
07.10.2012, 16:14 #6
My_Trinity, ключ "-N" wget сравнивает скаченный файл (%SystemDrive%\Проба\Data.txt) с файлом в инете. Если в инете произошло изменение, файл скачивается с этим же именем, если изменения в файле нет, он не скачается.
Цитата Сообщение от My_Trinity Посмотреть сообщение
пишет "Обновления Data.txt нет^! "
Уже исправил, убрав лишний ^ (строчка 11 поста)
Цитата Сообщение от My_Trinity Посмотреть сообщение
А кодировка должна быть OEM 866?
Конечно. Это избавляет от кучи проблем с кириллицей
1
My_Trinity
2 / 2 / 0
Регистрация: 05.10.2012
Сообщений: 12
07.10.2012, 16:30  [ТС] #7
Извените за столь глупые вопросы, я не программист и вообще в этом не разбираюсь...
1)После того как сделал кодировку OEM 866 перестало читать.
2)И я хотел чтобы всегда показывало содержимое текстового документа (в данном случае 1 раз запускаешь пишет а во второй раз когда запускаешь пишет только "Обновления Data.txt нет!" и больше ничего (тот текст который в файле он не отображается)
P.S. Можно как-то titile изменить? Сама команда titile отказывается работать...
0
sov44
1754 / 738 / 126
Регистрация: 09.04.2011
Сообщений: 1,312
07.10.2012, 17:22 #8
Цитата Сообщение от My_Trinity Посмотреть сообщение
1)После того как сделал кодировку OEM 866 перестало читать.
скрипт настроен на setup.cmd в 866 кодировке, Data.txt в UTF8. Если поменяете кодировку этих файлов, внесите изменения в настройки конвертера
Bash
1
win_iconv.exe -f UTF8 -t cp866 "%SystemDrive%\Проба\DATA.txt">"866_data.txt"
где "-f UTF8" исходная кодировка (до), "-t cp866" конечная кодировка (после), "%SystemDrive%\Проба\DATA.txt" где лежит исходный файл, "866_data.txt" куда сохранять в новой кодировке. Нужно учесть, для того, чтобы в командной строке читалась кириллица, конечная кодировка (в файле 866_data.txt) должна быть в 866 кодировке.
Цитата Сообщение от My_Trinity Посмотреть сообщение
чтобы всегда показывало содержимое текстового документа
попробовать заменить строчки 8-18 на
Bash
1
2
>"%TemporaryName%" 2>&1 %~dp0wget.exe -N -P "%SystemDrive%\Проба" "%sURL%" 
win_iconv.exe -f UTF8 -t cp866 "%SystemDrive%\Проба\DATA.txt">"866_data.txt"
Цитата Сообщение от My_Trinity Посмотреть сообщение
Можно как-то titile изменить?
нет
0
Dragokas
Эксперт WindowsАвтор FAQ
16106 / 6925 / 834
Регистрация: 25.12.2011
Сообщений: 10,692
Записей в блоге: 16
08.10.2012, 00:15 #9
sov44,

Вот это пример безопасного кода и экономии переменных.
Но я бы подкорректировал чуть проще:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
@echo off
 
set Source=%SystemDrive%\Проба
set sURL=http://updater-newbx.at.ua/DATA.txt
if not exist "%Source%" md "%Source%"
 
call :GetTemporaryName TemporaryName
>"%TemporaryName%" 2>&1 wget.exe -N -P "%Source%" "%sURL%" &&(
    findstr.exe /r /c:"^Server file no newer than local file .* -- not retrieving.$" "%TemporaryName%" >nul &&(
    echo.
    echo              Обновления Data.txt нет^!
  ) || (
    win_iconv.exe -f utf-8 -t cp866 "%Source%\DATA.txt">"866_data.txt"
    For /F "usebackq eol= delims=" %%a in ("866_data.txt") do echo %%a
  )
)
 
del /f /q "%TemporaryName%" 2>nul
del /f /q 866_data.txt 2>nul
pause>nul
goto :eof
 
:GetTemporaryName
    set sTempName=%temp%\temp%random%.tmp
    if exist "%sTempName%" (goto :GetTemporaryName) else (set %1=%sTempName%)
ПС. У меня тоже почeму-то с UTF8 не подружилось. Приложил тест-файлы.
1
Вложения
Тип файла: rar Codepage.rar (9.0 Кб, 8 просмотров)
Dragokas
Эксперт WindowsАвтор FAQ
16106 / 6925 / 834
Регистрация: 25.12.2011
Сообщений: 10,692
Записей в блоге: 16
08.10.2012, 16:02 #10
Цитата Сообщение от My_Trinity Посмотреть сообщение
можно еще как-то изменить title
Так что-ли:
Bash
1
TITLE My_Program
Да, изменится естественно при выполнении сторонней программы (wget, например).

Цитата Сообщение от Dragokas Посмотреть сообщение
с UTF8 не подружилось
Благодаря, sov44 и gora решено.
При сохранении в формат UTF-8 редактором AkelPad нужно снять галочку с параметра "BOM".
Что делать с текстом взятым напрямую с интернет-адреса, пока неясно.
1
My_Trinity
2 / 2 / 0
Регистрация: 05.10.2012
Сообщений: 12
09.10.2012, 18:03  [ТС] #11
Не могу обьяснить то, что хочу...
Попробовал изобразить это на видео (3мб) Удалено
Благодарю)
1
Dragokas
Эксперт WindowsАвтор FAQ
16106 / 6925 / 834
Регистрация: 25.12.2011
Сообщений: 10,692
Записей в блоге: 16
09.10.2012, 18:24 #12
Нужно команду TITLE еще раз повторить уже после выполнения WGET (например, в строку № 17)
(Ведь WGET изменяет TITLE, как видите).

Или, как вариант, вынести WGET в отдельный BAT-файл, но это не так удобно.
1
My_Trinity
2 / 2 / 0
Регистрация: 05.10.2012
Сообщений: 12
09.10.2012, 18:34  [ТС] #13
Спасибо!
А можно сделать как-то чтобы не писало "Обновления Data.txt нет" а писало всегда содержимое текстового документа который в интернете, если он изменился со след. запуском батника текст тоже изменился и всегда отображался (тоесть и в первый раз и во второй и в третий и т.д) (сейчас только в первый запуск отображается, а потом "Обновления Data.txt нет")
0
sov44
1754 / 738 / 126
Регистрация: 09.04.2011
Сообщений: 1,312
09.10.2012, 18:49 #14
Цитата Сообщение от My_Trinity Посмотреть сообщение
сделать как-то чтобы не писало "Обновления Data.txt нет" а писало всегда содержимое текстового документа который в интернете
Цитата Сообщение от sov44 Посмотреть сообщение
попробовать заменить строчки 8-18

итог:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
@echo off
setlocal enableextensions enabledelayedexpansion
 
set sURL=http://updater-newbx.at.ua/DATA.txt
if not exist "%SystemDrive%\Проба" md "%SystemDrive%\Проба"
 
call :GetTemporaryName
>"%TemporaryName%" 2>&1 %~dp0wget.exe -N -P "%SystemDrive%\Проба" "%sURL%" &&(
win_iconv.exe -f UTF8 -t cp866 "%SystemDrive%\Проба\DATA.txt">"866_data.txt"
For /F "usebackq eol= delims=" %%a in ("866_data.txt") do echo %%a
pause >nul
    )
              
del /f /q "%TemporaryName%" 2>nul
del /f /q 866_data.txt 2>nul
 
endlocal
exit /b 0
 
:GetTemporaryName
    setlocal enableextensions enabledelayedexpansion
 
:NextName
    set sTempName=%temp%\temp%random%.tmp
    if exist "%sTempName%" goto :NextName
    set sProcName=%~0
    endlocal & set %sProcName:~4%=%sTempName%
    exit /b 0
2
Dragokas
Эксперт WindowsАвтор FAQ
16106 / 6925 / 834
Регистрация: 25.12.2011
Сообщений: 10,692
Записей в блоге: 16
09.10.2012, 18:51 #15
Так и быть, пусть и мое остается:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
@echo off
setlocal enableextensions enabledelayedexpansion
::Имя программы
set ProgName=My_Synhronizer
::Имя папки для синхронизации
set Source=h:\1\testing
::Файл на удаленном компьютере
set sURL=http://updater-newbx.at.ua/DATA.txt
if not exist "%Source%" md "%Source%"
 
TITLE %ProgName%
call :GetTemporaryName TemporaryName
>"%TemporaryName%" 2>&1 %~dp0wget.exe -N -P "%Source%" "%sURL%" &&(
    win_iconv.exe -f UTF8 -t cp866 "%Source%\DATA.txt">"866_data.txt"
    TITLE %ProgName%
    For /F "delims=" %%a in (866_data.txt) do echo %%a
    pause>nul
)
 
del /f /q "%TemporaryName%" 2>nul
del /f /q 866_data.txt 2>nul
goto :eof
 
:GetTemporaryName
    set sTempName=%temp%\temp%random%.tmp
    if exist "%sTempName%" (goto :GetTemporaryName) else (set %1=%sTempName%)
1
09.10.2012, 18:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.10.2012, 18:51
Привет! Вот еще темы с ответами:

Редактирование части текстового документа - CMD/BAT
Имеется текстовый документ. Нужно изменить слово в кавычках в третьей строке батником. PS. Это слово в кавычках находится в самом конце...

Копирование определенного текста из текстового документа - CMD/BAT
Задача такая - есть текстовый документ, в котором перечислены названия файлов с различными расширениями. Мне нужно, чтобы батник находил в...

На основе содержимого одного текстового файла создать два других - CMD/BAT
Граждане, прошу помощи. Есть текстовик с таким содержанием: Нужно сделать из него два текстовых файла с таким содержанием: и ...

Как удалить все двойные кавычки из содержимого текстового файла? - CMD/BAT
и ещё вопрос как удалить " во всём файле txt файле?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.