2016-08-29 2 views
1
@echo off 
call :inputbox "Enter the imput" "JIFFY" 
echo You entered %Input% too late to back down now :) 
start "search1" "www.google.com" 
start "search2" "www.duckduckgo.com" 
start "search3" "www.wolframalpha.com" 
exit /b 
:InputBox 
set input= 
set heading=%~2 
set message=%~1 
echo wscript.echo inputbox(WScript.Arguments(1),WScript.Arguments(0)) >"%temp%\input.vbs" 
for /f "tokens=* delims=" %%a in ('cscript //nologo "%temp%\input.vbs" "%message%" "%heading%"') do set input=%%a 
exit /b 

Я не понимаю, какие строки от 10 до 13 делают точным. Идея состоит в том, чтобы собирать и обрабатывать до трех входов для запуска поисковых запросов в поисковых системах с помощью команды start. Мне удается сделать это с 1, но я не уверен, как сделать несколько запросов только 1 поле ввода. Кроме того, я не уверен, что делает созданный файл temp, и функции set heading=%~2 и set message=%~1.Несколько поисковых запросов в vbs /.bat

ответ

0

Чтобы понять, что линии 10 и 11 делают в первую очередь необходимо понять, что линии 2 и 8 делают:

@echo off 
call :inputbox "Enter the imput" "JIFFY" 
... 
:InputBox 
... 

Пакетный call оператор может не только запускать другие другие пакетные сценарии, но и может повторно запустить текущий пакетный скрипт, начиная с данной метки (здесь :InputBox). В принципе, вы повторно запустить скрипт, но выполняет только свою вторую половину:

set input= 
set heading=%~2 
set message=%~1 
echo wscript.echo inputbox(WScript.Arguments(1),WScript.Arguments(0)) >"%temp%\input.vbs" 
for /f "tokens=* delims=" %%a in ('cscript //nologo "%temp%\input.vbs" "%message%" "%heading%"') do set input=%%a 
exit /b 

Линии 10 и 11 назначьте аргументы call заявления к переменным heading и message.

Строка 12 затем создает временный файл VBScript, который отображает InputBox, и эхо-сигнал, который вводит пользователь в это поле ввода.

Наконец, строка 13 запускает VBScript, минуя %heading% и %message% в качестве заголовка и текста поля ввода. Поскольку сценарий запускается с помощью интерпретатора командной строки cscript.exe, эхо-сигнал записывается в STDOUT и присваивается переменной input контуром for. Эта переменная остается заселенной после возврата call, поэтому вы можете вывести %input% в строке 3 (и потенциально использовать ее в своих поисках).

Чтобы на самом деле искать входные данные, вам нужно будет вызывать URL поисковой системы с правильными параметрами. Например, вы хотите запустить поиск Google, как это:

start "title" "http://www.google.com/search?q=%input%" 

Другие поисковые системы, вероятно, имеют разные параметры, поэтому вам нужно проверить, что для каждого двигателя. Кроме того, вам может потребоваться обработать специальные символы и несколько терминов поиска в input (например, foo bar bazfoo+bar+baz).

+0

Действительно, спасибо, я ищу, чтобы запустить этот% input% на нескольких управляемых URL-адресах, но некоторые из них имеют 2 и 3 окна ввода формы, я должен постоянно запускать несколько поисков по нескольким поисковым системам каждый день на работе , – Grotesque2000

+0

Число полей ввода на веб-странице не так важно. Важно то, можно ли создать один URL для выполнения запроса. –

+0

Это пример из 1 из них: [https://box.tool.com/tools/v3/?ts=tool&item_id=%Input%&=fname&fn_item=&customer_id="data_query"client&item="data_query"&location_id=1] , Я смог манипулировать этим и несколькими другими. странно, что после запроса строки с двойными размерами легко определить, где находится запрос. – Grotesque2000

Смежные вопросы