1

Тема: wsh Запуск (wsh.Exec) и обработка статуса (wsh.Status)

Доброго утра.

wsh = new ActiveXObject("WScript.Shell");
fso = new ActiveXObject("Scripting.FileSystemObject");

url = "https://www.youtube.com/watch?v=s9HUWYAM4Tw";

html = wsh.Exec('wget -Ncq --no-check-certificate ' + url + ' -O-');
while (html.Status == 0) {
    WScript.Sleep (200);
}

Почему то происходит зависание wget-а. Подскажите пожалуйста, от чего так?

Нас невозможно сбить с пути, нам пофигу куда идти.

2

Re: wsh Запуск (wsh.Exec) и обработка статуса (wsh.Status)

Надо читать стандартный вывод команды.
Еще близкое по теме обсуждение было тут - JScript: Проблема с WshScriptExec.Exec

( 2 * b ) || ! ( 2 * b )

3

Re: wsh Запуск (wsh.Exec) и обработка статуса (wsh.Status)

А вот тут есть ещё один подводный камень: портированный «wget.exe» делает вывод в stderr, а не в stdout .

4

Re: wsh Запуск (wsh.Exec) и обработка статуса (wsh.Status)

alexii
Зависит от порта. Я такое наблюдаю в wget от GnuWin32.

( 2 * b ) || ! ( 2 * b )

5

Re: wsh Запуск (wsh.Exec) и обработка статуса (wsh.Status)

Я понимаю, что такое сделано прежде всего для того, чтобы соблюсти традицию, доставшуюся по наследству: «wget.exe» умеет делать вывод полученного на stdout.

6

Re: wsh Запуск (wsh.Exec) и обработка статуса (wsh.Status)

alexii пишет:

Я понимаю, что такое сделано прежде всего для того, чтобы соблюсти традицию, доставшуюся по наследству: «wget.exe» умеет делать вывод полученного на stdout.

То что выводит что-то на stderr либо это какая-то хитрая настройка, либо косяк разработчиков порта. В оригинальной версии и других портах такого не наблюдается.

А вообще-то это очень хорошая традиция - писать в stdout (так эе как и читать stdin). Так с помощью wget и пары парсеров (sed, perl, awk) можно писать создавать свои интернет-читалки.

( 2 * b ) || ! ( 2 * b )

7

Re: wsh Запуск (wsh.Exec) и обработка статуса (wsh.Status)

Rumata пишет:

Так с помощью wget и пары парсеров (sed, perl, awk) можно писать создавать свои интернет-читалки.

В какой форме? Всяких GUI для wget и так навалом. А парсить можно и с vbs/js.

8

Re: wsh Запуск (wsh.Exec) и обработка статуса (wsh.Status)

В какой форме?

Например, получить переменную ссылку с постоянной html-страницы.

9

Re: wsh Запуск (wsh.Exec) и обработка статуса (wsh.Status)

Flasher пишет:

В какой форме? Всяких GUI для wget и так навалом. А парсить можно и с vbs/js.

Зачем GUI к утилите командной строки? Только для того чтобы галочек в форме нащелкать и получить команду со всеми ключами. Нет большой разницы какой язык использовать для разбора полученных данных.

Вот пример - OFF: cURL/wget — получение остатка средств на счёте

( 2 * b ) || ! ( 2 * b )