Пакетный скрипт для открытия нескольких программ + несколько вкладок браузера - PullRequest
0 голосов
/ 08 октября 2018

Отказ от ответственности: я не программирую на работу, и мои навыки в чтении кода находятся на начальном уровне

Я нашел полезный скрипт для открытия нескольких вкладок (в Chrome) из исходного скрипта.Я также хотел открыть несколько приложений (например, OneNote и Outlook).* Файл 'list.txt', который вызывает этот файл, содержит четыре разных URL.

@echo off
setlocal enableextensions
set num=4
for /l %%i in (1,1,%num%) do call :start
endlocal
goto :eof

:start
set /p URL=<list.txt
start "" "%URL%"
more +1 list.txt | findstr /r /v "^$" > tmp_list.txt
echo.%URL%>>tmp_list.txt
del list.txt
ren tmp_list.txt list.txt

cd "C:\Program Files (x86)\Microsoft Office\root\Office16\ONENOTE.EXE"
start ONENOTE.EXE

cd "C:\Program Files (x86)\Microsoft Office\root\Office16\OUTLOOK.EXE"
start OUTLOOK.EXE

goto :eof

Мне кажется, я понимаю, как работает код вкладок браузера, но я подозреваю, что эта логика мешает открытию Outlook и OneNoteи, следовательно, каждый раз, когда я запускаю этот сценарий, открываются несколько экземпляров Outlook и OneNote.

Любая помощь очень ценится, так как всегда полезно попробовать автоматизировать работу администратора с повторениями.

1 Ответ

0 голосов
/ 08 октября 2018
@echo off
setlocal enableextensions
set "num=4"
( for /l %%i in (1, 1, %num%) do call :start ) < list.txt

cd /d "C:\Program Files (x86)\Microsoft Office\root\Office16"
start ONENOTE.EXE
start OUTLOOK.EXE

endlocal
exit /b

:start
set /p "URL="
start "" "%URL%"
exit /b

Если заключить цикл for в скобки и ввести stdin с list.txt, то дескриптор файла остается открытым, поэтому каждая из 4 строк читается последовательно.Ваш опубликованный код повторно открывает дескриптор файла с каждым циклом, так что вы получаете 1-ю строку, прочитанную с каждым вызовом.

Сводка :

Цикл for читает каждый из4 строки из list.txt.call :start принимает стандартный ввод строки, в которой set /p "URL=" сохраняет строку в переменной с именем URL.start открывает значение %URL%.Вызов вернется к строке, из которой выполняется вызов, и снова будет выполнен цикл.

Когда цикл завершится, Onenote выполнится, а затем Outlook выполнится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...