PDA

Показать полную графическую версию : [решено] Открытие 4 рандомных сайтов из списка


Svnkill
18-10-2019, 00:35
Привет, мне надо чтобы при запуске .bat открылись рандомные 4-7 сайтов из списка, и 2 нужных сайта. Кто-то занает как это осуществить?

Iska
18-10-2019, 06:40
Я знаю. Где список, и где адреса «2 нужных сайтов»?

megaloman
18-10-2019, 12:16
Я знаю. Где список, и где адреса «2 нужных сайтов»? » Я не знаю, попытаюсь догадаться :).@Echo Off
Set Brow="C:\Program Files\Google\Chrome\Application\chrome.exe"
Set /A Ran=4

Call :Spis1
Call :Spis2

FOR /F "usebackq tokens=1* delims==" %%i IN (`2^>nul Set "@@B"`) DO Start "" %Brow% %%j

Set /A N=1
:Begin
FOR /L %%i IN (1,1,10) DO Call Set /A R=(%%RANDOM%%*%NSpis2%/32768)+1
Call Set "Link=%%@@R%R%%%"
If "%Link%"=="" GoTo :Begin
Start "" %Brow% %Link%
Set "@@R%R%="
Set /A N+=1
If %N% LEQ %Ran% GoTo :Begin
Exit /B 0

:Spis1
Set "@@B1=https://ok.ru/game/mbalda"
Set "@@B2=https://ok.ru/game/fotocrossword"
Exit /B

:Spis2
Set "@@R1=https://vz.ru"
Set "@@R2=https://lenta.ru"
Set "@@R3=https://www.gismeteo.by/weather-gomel-4918/"
Set "@@R4=https://www.tut.by"
Set "@@R5=http://haharms.ru/zoshchenko-m-rasskazy-chitat-texty-29.html"
Set "@@R6=http://forum.oszone.net/forum-102.html"
Set "@@R7=https://gomel.today/"
Set "@@R8=http://rfpro.ru/"
Set "@@R9=http://www.belstat.gov.by"
Set "@@R10=http://www.gomel-region.by/ru/"

Set /A NSpis2=10
Exit /B

Iska
18-10-2019, 15:47
megaloman, а я бы просто start "" "http://www.google.com", start "" "http://www.ya.ru" и т.д. — просто отдавал бы на откуп браузеру по умолчанию.

megaloman
18-10-2019, 16:44
Iska, отдавал бы на откуп браузеру по умолчанию » Не знаю. У меня по умолчанию IE (не подвергайте меня остракизму, пожалуйста), и предлагаемый Вами способ открывает кучу окон IE , в отличии от хрома - там сайты открываются в закладках. Возможно, существуют какие-то настройки ...

Iska
18-10-2019, 16:47
и предлагаемый Вами способ открывает кучу окон IE »
Даже в тех версиях, которые уже поддерживают вкладки? Не знал.

megaloman
18-10-2019, 17:03
Iska, Попробовал выкрутиться. Запустил IE (у меня IE11 со всеми вышедшими обновлениями), и, после timeout /t 5, сайты запускаются во вкладках, плюс остаётся пустая вкладка.

Iska
18-10-2019, 17:37
megaloman, а… Надо полагать, что пока он не «отелится», пока не запустится — последующие (после первого) вызовы просто не «видят» уже запущенного процесса iexplore.exe и порождают вызов на исполнение новых отдельных процессов браузера, а не передаются существующему. Попробуйте предварительно открыть IE, подождать, а потом пробежаться start'ами с url'ами — если моя мысль имеет право на жизнь, то все вызовы start "" "url" должны быть переданы существующему процессу (если он будет запущен с тем же уровнем целостности), а url'ы открыты в его вкладках.

megaloman
18-10-2019, 17:58
Iska, я сделал именно так исайты запускаются во вкладках, плюс остаётся пустая вкладка. »но при этом всё равно надо указать экзешник браузера, для того, чтобы его запустить и подождать, перед запуском url-ов

Iska
18-10-2019, 18:13
но при этом всё равно надо указать экзешник браузера, для того, чтобы его запустить и подождать, перед запуском url-ов »
Да-да, я про это — просто, чтобы проверить идею.

Svnkill
19-10-2019, 17:30
Спасибо! А если мне надо добавить больше сайтов то я просто добавляю @@R11 @@R12 и так далее. Правильно?)

:Spis2
Set "@@R1=https://vz.ru"
Set "@@R2=https://lenta.ru"
Set "@@R3=https://www.gismeteo.by/weather-gomel-4918/"
Set "@@R4=https://www.tut.by"
Set "@@R5=http://haharms.ru/zoshchenko-m-rasskazy-chitat-texty-29.html"
Set "@@R6=http://forum.oszone.net/forum-102.html"
Set "@@R7=https://gomel.today/"
Set "@@R8=http://rfpro.ru/"
Set "@@R9=http://www.belstat.gov.by"
Set "@@R10=http://www.gomel-region.by/ru/" »

megaloman
20-10-2019, 15:16
Svnkill, просто добавляю @@R11 @@R12 и так далее. Правильно?) »да, и, кроме того, поставить максимальное значение NSpis2= .....

megaloman
20-10-2019, 23:30
@Echo Off
cls
Set Brow="C:\Program Files\Google\Chrome\Application\chrome.exe"

Set /A Ran=4

Call :ToVar "Spis1=====" "@@B" "N@@B"
Call :ToVar "Spis2=====" "@@R" "N@@R"

FOR /F "usebackq tokens=1* delims==" %%i IN (`2^>nul Set "@@B"`) DO Start "" %Brow% %%j

Set /A N=1
:Begin
FOR /L %%i IN (1,1,10) DO Call Set /A R=(%%RANDOM%%*%N@@R%/32768)+1
Call Set "Link=%%@@R%R%%%"
If "%Link%"=="" GoTo :Begin
Start "" %Brow% %Link%
Set "@@R%R%="
Set /A N+=1
If %N% LEQ %Ran% GoTo :Begin
Exit /B 0

:ToVar
Set /A i=0
FOR /F "usebackq tokens=1* delims=:" %%a IN (`2^>nul FINDSTR /I /L /B /N %1 "%~dpnx0"`) DO (
FOR /F "usebackq delims=" %%s IN (`2^>nul More +%%a "%~dpnx0"`) DO (
Echo %%s |Find /I /N %1 >nul 2>&1 &&(Call Set /A %~3=%%i%% &Exit /B 0)
Call Set /A i+=1
Call Set "%~2%%i%%=%%s"
)
)
Exit /B

Spis1=====

https://ok.ru/game/mbalda
https://ok.ru/game/fotocrossword

Spis1=====

Spis2=====

https://vz.ru
https://lenta.ru
https://www.gismeteo.by/weather-gomel-4918/
https://www.tut.by
http://haharms.ru/zoshchenko-m-rasskazy-chitat-texty-29.html
http://forum.oszone.net/forum-102.html
https://gomel.today/
http://rfpro.ru/
http://www.belstat.gov.by
http://www.gomel-region.by/ru/

Spis2=====

Каждый список должен ограничиваться одним и тем же словом, у меня это Spis1===== Spis2=====

alpap
20-10-2019, 23:53
рандомные 4-7 сайтов из списка, и 2 нужных сайта »
добавлю и свой вариант

@echo off
set "$1=https://vz.ru"
set "$2=https://lenta.ru"
set "$3=https://www.gismeteo.by/weather-gomel-4918/"
set "$4=https://www.tut.by"
set "$5=http://haharms.ru/zoshchenko-m-rasskazy-chitat-texty-29.html"
set "$6=http://forum.oszone.net/forum-102.html"
set "$7=https://gomel.today/"
set "$8=http://rfpro.ru/"
set "$9=http://www.belstat.gov.by"
set "$10=http://www.gomel-region.by/ru/"
set "z1=https://ok.ru/game/mbalda"
set "z2=https://ok.ru/game/fotocrossword"
set /a "min=4,max=7,nr=%random%%%(max-min+1)+min"

echo %z1%
echo %z2%
for /f "tokens=2" %%a in ('"cmd /v/c for /f tokens^^=2^^ delims^^=^^= %%a in ('set $') do @echo !random! %%a|sort"') do set /a n+=1& call :# "%%n%%" "%%a"
pause& exit

:#
if "%~1" lss "%nr%" echo %~2
exit /b

Svnkill, как Вы понимаете количество строк для рандомных адресов любое, дописываете с увеличением порядкового номера, в последней строке переменных можно диапазон от 4 до 7 поменять на свой.
megaloman, взял Ваши образцы адресов для упрощения работы, надеюсь не обидитесь.

Svnkill
28-10-2019, 12:54
Set /A Ran=4 »
Что надо прописать что бы открылось рандомное количество вкладок от 3 до 6 к примеру?

DJ Mogarych
28-10-2019, 15:29
Powershell:

# список нужных сайтов
gc C:\temp\needed-sites.txt |% {start $_}
# список прочих, открываются случайные 4
Get-Random (gc C:\temp\other-sites.txt) -Count 4 |% {start $_}


Вид файлов со списком сайтов:
http://forum.oszone.net
https://yandex.ru
https://vz.ru
https://lenta.ru
https://www.gismeteo.by/weather-gomel-4918/
https://www.tut.by
http://haharms.ru/zoshchenko-m-rasskazy-chitat-texty-29.html
http://forum.oszone.net/forum-102.html
https://gomel.today/
http://rfpro.ru/
http://www.belstat.gov.by
http://www.gomel-region.by/ru/

Svnkill
30-10-2019, 02:40
Не очень понял.
Set /A Ran=икс
где икс- любое число не более общего числа перечисленных сайтов в списке. »
Я имею в виду чтобы он при запуске открыл случайное количество вкладок. Две или три. При каждом запуске открывалось случайное количество вкладок

alpap
30-10-2019, 03:48
Svnkill,
в моем варианте п.14 и в строке тоже под номером 14, единственная регулировка, именно рандомный диапазон, сейчас указан вами заданный в условии от 4 до 7, меняется как вам захочется, ну потолок, естественно не более количества ссылок, тут уж логически понятно. Может там легче вам будет тогда.
Попробуйте, запустить код, например, раза 4, вот в таком варианте:


@echo off
::---------------------------------------------
set "$1=https://vz.ru"
set "$2=https://lenta.ru"
set "$3=https://www.gismeteo.by/weather-gomel-4918/"
set "$4=https://www.tut.by"
set "$5=http://haharms.ru/zoshchenko-m-rasskazy-chitat-texty-29.html"
set "$6=http://forum.oszone.net/forum-102.html"
set "$7=https://gomel.today/"
set "$8=http://rfpro.ru/"
set "$9=http://www.belstat.gov.by"
set "$10=http://www.gomel-region.by/ru/"
::---------------------------------------------
set "z1=https://ok.ru/game/mbalda"
set "z2=https://ok.ru/game/fotocrossword"
::---------------------------------------------
set /a "min=4,max=7,nr=%random%%%(max-min+1)+min"

>>file.txt (
echo ---------------------------------------------
echo %z1%
echo %z2%
)

for /f "tokens=2" %%a in ('"cmd /v/c for /f tokens^^=2^^ delims^^=^^= %%a in ('set $') do @echo !random! %%a|sort"') do set /a n+=1& call :# "%%n%%" "%nr%" "%%a"
pause& exit

:#
>>file.txt (if "%~1" lss "%~2" echo %~3)
exit /b

megaloman
30-10-2019, 14:46
Что надо прописать что бы открылось рандомное количество вкладок от 3 до 6 к примеру? »ВместоSet /A Ran=4 »

rem Set /A Ran=4
Set /A RanMin=3
Set /A RanMax=6
FOR /L %%i IN (1,1,10) DO Call Set /A Ran=(%%RANDOM%%*(%RanMax%-%RanMin%+1)/32768)+%RanMin%
Если обязательные для запуска сайты отсутствуют, то закомментировать или удалить строкуrem FOR /F "usebackq tokens=1* delims==" %%i IN (`2^>nul Set "@@B"`) DO Start "" %Brow% %%j

DJ Mogarych
31-10-2019, 12:08
Что надо прописать что бы открылось рандомное количество вкладок от 3 до 6 к примеру? »
Get-Random (gc C:\temp\other-sites.txt) -Count $(Get-Random (3..6)) |% {start $_}




© OSzone.net 2001-2012