Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.79/34: Рейтинг темы: голосов - 34, средняя оценка - 4.79
5 / 5 / 0
Регистрация: 24.11.2015
Сообщений: 224

Автоматическая установка набора приложений из заданной папки

10.05.2018, 16:15. Показов 7715. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написал вот код, все работает за исключением одного момента..
если какой то установщик отсутствует скажем Ccleaner то вместо него опять переустановиться предыдущий пункт.(в нашем случает два раза установиться Piriform Utilitie).... Почему? поправьте пожалуйста... и если можно посмотрите на грамотность кода, там чтобы с путями проблем не было и всякое такое. за ранее благодарен.
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@echo off
@call :SoftInstall "Piriform Utilities" "/VERYSILENT"
@call :SoftInstall "CCleaner" "/VERYSILENT"
@call :SoftInstall "Adobe Runtimes AllInOne" "/VERYSILENT"
pause & exit
 
:SoftInstall
set SoftFldr=C:\Soft
For %%i IN ("%SoftFldr%\%~1*.exe") DO Set FileName="%%i"
Echo Запустилось %FileName%
Echo Должно быть "%SoftFldr%\%~1**.exe"
If Exist "%SoftFldr%\%FileName%" Echo %~1 не установлен! Установочный файл отсутствует. & goto :EOF
Echo Устанавливаем %~1....
%FileName% %~2
@echo %FileName% "%~2"
@ping -n 1 127.1 >NUL
goto :EOF
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.05.2018, 16:15
Ответы с готовыми решениями:

Автоматическая установка приложений вирусом и открытие новых вкладок Автоматическая установка приложений виру
Вот логи. Пожалуйста помогите

Автоматическая установка приложений и всплывающие окна
Ситуация очень похожа на эту

Перенос (автоматическая установка) приложений на карту памяти в Android 4.1
Здравствуйте форумчане..У меня довольно такая больная проблема...купил недавно lg L7 2 dual и не могу перенести, установить приложения на...

24
5 / 5 / 0
Регистрация: 24.11.2015
Сообщений: 224
11.05.2018, 20:40  [ТС]
может
Windows Batch file
1
start /wait "" "%FileName% %~2"
надо применять...помогите пожалуйста
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
12.05.2018, 02:10
Цитата Сообщение от Guman Посмотреть сообщение
может
Windows Batch file
1
2
3
4
5
6
7
@echo off
for %%p in ("pr1" "pr2" "prN") do if not exist "papka\%%~p" (echo Установщик "%%~p" еще не подвезли) else call :inst "%%~p"
pause& exit
 
:inst
 echo Инсталлируем: "%~1"
exit /b
1
5 / 5 / 0
Регистрация: 24.11.2015
Сообщений: 224
12.05.2018, 08:56  [ТС]
а ключи установки куда прописывать, надо еще и ключи установки припихнуть
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
12.05.2018, 18:58
Цитата Сообщение от Guman Посмотреть сообщение
надо еще и ключи установки припихнуть
и в чем дело, у вас он один и тот же:
Windows Batch file
1
2
3
... else call :inst "%%~p" "/VERYSILENT"
...
 echo Инсталлируем: "%~1" %~2
Добавлено через 1 час 16 минут
а если ключи разные можно примерно так поступить:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
@echo off
set "$_pr1="proga1.exe" "/1ключ1" "/1ключ2""
set "$_pr2="proga2.exe" "/2ключ1""
set "$_pr3="proga3.exe" "/3ключ1" "/3ключ2""
set "d=C:\Papka"
 
for /f ^"tokens^=2^-4^ delims^=^=^ ^" %%a in ('set $_') do if not exist "%d%\%%~a" (
  echo Нет такого инсталлятора
 ) else (
  echo Инсталлируем: "%d%\%%~a" %%~b %%~c
 )
pause
1
5 / 5 / 0
Регистрация: 24.11.2015
Сообщений: 224
13.05.2018, 14:47  [ТС]
alpap, я видимо плохой пример выложил,
Цитата Сообщение от alpap Посмотреть сообщение
а если ключи разные можно примерно так поступить:
вот ключевое выражение.
Именно проблема в том что ключи разные. спасибо попробую применить.
0
 Аватар для kozidub21
30 / 29 / 9
Регистрация: 16.01.2018
Сообщений: 80
25.05.2018, 14:00
Guman,
Думаю, так практичнее
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@echo off
setlocal enabledelayedexpansion enableextensions
chcp 65001 >nul& color f9
set dir=%~dp0
:: Start list
call :install "admin" "/vv"
:: End list
endlocal
timeout /t -1
@exit
:install
if not exist "!dir!%~1" (echo Folder "%~1" not found.& exit /b) else (cd /d "!dir!%~1")
for /f "usebackq tokens=*" %%h in (`dir "!dir!%~1" /a-d /b`) do (cls& echo Starting: "%%h"& start /wait "" cmd /c "call "%%h" %~2")
exit /b
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
25.05.2018, 22:46
kozidub21,
не так все просто, я поэтому и добавил второй код, учитывающий это.
Цитата Сообщение от Guman Посмотреть сообщение
проблема в том что ключи разные
1
5 / 5 / 0
Регистрация: 24.11.2015
Сообщений: 224
04.06.2018, 07:30  [ТС]
alpap, а что у kozidub21, не так?
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
04.06.2018, 10:41
это
Цитата Сообщение от Guman Посмотреть сообщение
проблема в том что ключи разные
у него код для одного (одинакового для каждого инсталлятора, как у меня в первом коде 5го поста) ключа. Или вам все же так и достаточно, то зачем было голову морочить с фразой про разные ключи?
0
5 / 5 / 0
Регистрация: 24.11.2015
Сообщений: 224
04.06.2018, 19:27  [ТС]
alpap, все верно, мне надо десяток программ установить в тихом режиме и у всех ключи тихой установки разные .

Только вот уkozidub21, тоже вроде все верно или я все таки ошибаюсь??
Ведь можно же сделать так...
Дублировать строку
Windows Batch file
1
call :install "admin" "/vv"
И в итоге получим что то такое

Windows Batch file
1
2
3
4
call :install "admin" "/vv"
call :install "WinRAR" "/s"
call :install "teamViewer" "/verysilent"
call :install "Unlocker" "/silent
Или я не правильно понял работу кода ? Ещё возможности небылo протестировать сам код...
1
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
04.06.2018, 23:22
Guman,
тогда вообще лучше списком делать
spisok.txt
Кликните здесь для просмотра всего текста

"C:\proga1.exe"=/key1 /key2
"C:\proga4.exe"=/keyA /keyB
"D:\progaX.exe"=/key#

код
Windows Batch file
1
2
3
4
5
6
7
8
9
10
@echo off
<spisok.txt (for /f "tokens=1* delims==" %%a in ('find /v ""') do @(
  if exist "%%~a" (
   echo Инсталлируем: "%%~a" %%b
  ) else (
   echo Инсталлятора по пути "%%~a" нет
  )
 )
)
pause
0
 Аватар для kozidub21
30 / 29 / 9
Регистрация: 16.01.2018
Сообщений: 80
05.06.2018, 17:10
Guman, alpap,
По идее можно просто составить скрипт из 1 и более строк с полными путями и ключами. (Думаю, это не для нас)

Я так понял, что ожидаемая функциональность от скрипта заключается в:

1) Установке «Плавающего» пути «Корневой» папки работы скрипта.
2) Проверке существования папки (В случае ошибки при заполнении «Листа» программ)
3) Проверке существования самого инсталлятора.

А если все выше перечисленные три пункта «Не нужны», то можно ограничиться идеей выше.

И так, сложим практичность и новые условия, получим что-то хорошечное.

Версия 2.0:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@echo off
chcp 65001 >nul& color f9
setlocal enabledelayedexpansion enableextensions
set dir=C:\Users\admin\Downloads\SoftDir
set sh=0
:: Start list
call :install "SoftDll" "Reg.Organizer.v7.81.exe" "/verysilent"
call :install "VoiceSoft" "Skype.v7.41.32.101.exe" "/S /P"
:: End list
endlocal
echo.& echo Установка завершена, Enter для выхода.
timeout /t -1 >nul
@exit
:install
set /a sh+=1& if not exist "!dir!\%~1" (echo !sh!] Папка "!dir!\%~1" не найдена.& exit /b) else (if exist "!dir!\%~1\%~2" (echo !sh!] Установка "%~2 %~3"& cd /d "!dir!\%~1"& start /wait "" cmd /c "call "%~2" "%~3"") else (echo !sh!] Файл "!dir!\%~1\%~2" не найден.& exit /b))
exit /b
Так же, можно немного экспериментов:

Просто запустим инсталлятор из подпапки папки второго уровня (То есть папки третьего уровня) программу с ключом “1”, программа должна проигнорировать ключ командной строки и передать управление пользователю, но некоторые программы отказываются работать при таком положении дел.
Windows Batch file
1
call :install "SoftDll\PodPapka" "Reg.Organizer.v7.81.exe" "1"
Миниатюры
Автоматическая установка набора приложений из заданной папки  
0
5 / 5 / 0
Регистрация: 24.11.2015
Сообщений: 224
06.06.2018, 09:38  [ТС]
kozidub21, класс только вот еще бы реализовать правильно то что в первом посте указанно.... а именно...
вот эту строку
Windows Batch file
1
call :install "SoftDll" "Reg.Organizer.v7.81.exe" "/verysilent"
заменить на такой
Windows Batch file
1
call :install "SoftDll" "Reg.Organizer" "/verysilent"
чтобы проводился поиск установочного exe по названию "Reg.Organizer"
у меня так было.....
Цитата Сообщение от Guman Посмотреть сообщение
For %%i IN ("%SoftFldr%\%~1*.exe") DO Set FileName="%%i"
собственно остальная часть файла потом дописывается...то есть .v7.81.exe. Собственно во время обновления архива ненадо вручную править название exe файлов...
1
 Аватар для kozidub21
30 / 29 / 9
Регистрация: 16.01.2018
Сообщений: 80
06.06.2018, 17:41
Лучший ответ Сообщение было отмечено Guman как решение

Решение

Guman,
Версия 3.0.Final

Что нового:

1) Вводим название файлов по маске.

2) Красивые скобочки.

3) При обнаружении большее 1-го файла (По маске) «Счетчик сообщений» - не сбивается. (Односторонний тумблер)

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
@echo off
chcp 65001 >nul& color f9
setlocal enabledelayedexpansion enableextensions
set dir=C:\Users\admin\Downloads\SoftDir
echo Copyright © Kitaesh228& timeout 2 /nobreak >nul
:: Start list
call :check "SoftDll" "Reg.Organizer*.exe" "/verysilent"
call :check "VoiceSoft" "Skype*.exe" "/verysilent"
call :check "Exploits" "*Microsoft*" ""
:: End list
endlocal
echo.& echo Установка завершена, Enter для выхода.
timeout /t -1 >nul
@exit
:check
set exist=1& set /a sh+=1
if not exist "!dir!\%~1" (echo !sh!^) Папка "!dir!\%~1" не найдена.& exit /b) else (2>nul dir "!dir!\%~1\%~2" /a-d /b >nul|| set exist=0)
if "!exist!"=="0" (echo !sh!^) Файл^(ы^) "!dir!\%~1\%~2" не найден^(ы^).) else (call :install "%~1" "%~2" "%~3")
exit /b
:install
cd /d "!dir!\%~1"& set tr=0
for /f "usebackq tokens=*" %%h in (`dir "!dir!\%~1\%~2" /a-d /b`) do (if "!tr!"=="0" (set tr=1) else (set /a sh+=1)
echo !sh!^) Установка "%%h %~3".& start /wait "" cmd /c "call "%%h" "%~3"")
exit /b
Миниатюры
Автоматическая установка набора приложений из заданной папки  
1
 Аватар для kozidub21
30 / 29 / 9
Регистрация: 16.01.2018
Сообщений: 80
06.06.2018, 17:51
Лучший ответ Сообщение было отмечено Guman как решение

Решение

Guman,
Кстати, строку 23 можно заменить на:
Windows Batch file
1
echo !sh!^) Установка "%%h %~3".& start /wait /min "" cmd /c "call "%%h" "%~3"")
Для того, чтобы второе окно сидело в домике панели задач.

Не по теме:


Довольно странные ограничения на редактирование своих сообщений.

1
5 / 5 / 0
Регистрация: 24.11.2015
Сообщений: 224
08.06.2018, 20:48  [ТС]
kozidub21,

Не по теме:

ни куда я не испарялся, тесты провожу... как закончу отпишусь, обязательно!

0
5 / 5 / 0
Регистрация: 24.11.2015
Сообщений: 224
12.06.2018, 19:53  [ТС]
kozidub21, не заработало... все друг на друге запускается... тихие ключи не срабатывают...
вообщем че то не то.....
будь добр если доработаешь, прокомментируй каким образом все у тебя там работает... а то очень запутанно..




Добавлено через 3 минуты
кстати еще вот такие ошибки вылезают....
Windows Batch file
1
The system cannot write to the specified device.



Добавлено через 6 минут
удалил из кода chcp 65001, что то начало работать... тестирую дальше...




Добавлено через 22 минуты
В этой строке...
Windows Batch file
1
echo !sh!^) Установка "%%h %~3".& start /wait "" cmd /c "call "%%h" "%~3"")
нашел еще ошибку....."%~3" должен быть без кавычек....
Windows Batch file
1
echo !sh!^) Установка "%%h %~3".& start /wait "" cmd /c "call "%%h" %~3")
Добавлено через 14 минут
было бы не плохо если еще можно было выводить лог на рабочий стол в виде файла, но только в случае если какая то ошибка была...

Добавлено через 30 минут
так же не понравилось то что , при установке каждой следующей программы cmd запускает новое окно выполняет и закрывает... надо максимально спокойно делать... хотябы в одной окошке... если возможно то надо избавиться от дополнительных окошек..
0
5 / 5 / 0
Регистрация: 24.11.2015
Сообщений: 224
16.06.2018, 16:52  [ТС]
не знаю насколько правильно все будет, но сделал все в одной окошке. Таким образом....
поменял
Windows Batch file
1
echo !sh!^) Установка "%%h %~3".& start /wait "" cmd /c "call "%%h" %~3")
на
Windows Batch file
1
echo !sh!^) Установка "%%h %~3".& start /wait "" "%%h" %~3)
0
5 / 5 / 0
Регистрация: 24.11.2015
Сообщений: 224
17.06.2018, 20:07  [ТС]
в образе при установке выходи такая фигня в конце установки....
Windows Batch file
1
Недостаточно памяти для обработки команды
не могу понять в чем дело
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.06.2018, 20:07
Помогаю со студенческими работами здесь

Автоматическая установка программ и приложений на ноутбук. Не удаляются, появляются новые
Здравствуйте, прошу помочь мне разобраться с моей проблемой. Несколько дней назад я принес компьютер из ремонта, поскольку там не хватало...

Автоматическая раздача прав на папки
Доброе времени суток. Есть скрипт который по заготовке выдирает из csv файла имя пользователя и его непосредственного руководителя и...

Разделение заданной папки на папки определённого размера
Возможно ли (наверное возможно но ума не приложу как) разделить папку содержащею множество подпапок и тысячи файлов на папки определенного...

Автоматическая отправка на печать содержимого папки
интересует такая вещь: одна программулина сохраняет в определенной папке файл отчета в формате RTF. Дело в том, что следить за...

автоматическая отправка на печать содержимого папки
интересует такая вещь: одна программулина сохраняет в определенной папке файл отчета в формате RTF. Дело в том, что следить за...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru