[Цитировать]

    puhpol
  • 2
  • Стаж: 4 года 6 месяцев
  • Сообщений: 44
Приветствую! aa

[Цитировать]

    puhpol
  • 2
  • Стаж: 4 года 6 месяцев
  • Сообщений: 44
Скрипт ищет заданную папку на всех дисках, после чего запускает указанную программу с этого диска.
@echo off
for %%I in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %%I:\wind set PUH=%%I:
start /w %PUH%\wind\setup64.cmd
for %%I in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %%I:\wind set PUH=%%I:
Эта строка ищет папку \wind на всех дисках и задает переменную PUH (не понял зачем, но работает и фиг с ним)
start /w %PUH%\wind\setup64.cmd
После того как найден нужный диск запускаем скрипт setup64.cmd с ожиданием его выполнения.--Скрипт запускающий программу в зависимости от разрядности системы.
Должен лежать рядом с программой.
@echo off
if exist %WinDir%\SysWOW64 (start WinInstaller64.exe) Else (start WinInstaller32.exe)
exit
if exist %WinDir%\SysWOW64 (start WinInstaller64.exe) Else (start WinInstaller32.exe)
Если в системной папке найдена папка SysWOW64 будет запущена программа WinInstaller64.exe, в противном случае WinInstaller32.exe.--
@Echo Off
cd /D "%~dp0"
IF EXIST "%ProgramFiles(x86)%" (
  Start /d"%~dp0" WinInstaller64.exe %*
) Else (
  Start /d"%~dp0" WinInstaller32.exe %*
)

[Цитировать]

    puhpol
  • 2
  • Стаж: 4 года 6 месяцев
  • Сообщений: 44
Скрипт для поиска и запуска программы с заданным ключем.
@echo off
set MyName=\_Soft.Port\MiniTool_Partition_Wizard_Server_9.0\PartitionWizard.exe
for %%I in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do dir "%%I:%MyName%"&&start "" "%%I:%MyName%" -ai1&&exit

[Цитировать]

    puhpol
  • 2
  • Стаж: 4 года 6 месяцев
  • Сообщений: 44
Запуск программы в зависимости от разрядности системы. (х32или х64)
@echo off
if /i %PROCESSOR_ARCHITECTURE%==x86 if not defined PROCESSOR_ARCHITEW6432 (start WinInstaller32.exe) else (start WinInstaller64.exe)
exit

[Цитировать]

    puhpol
  • 2
  • Стаж: 4 года 6 месяцев
  • Сообщений: 44
Приветствую господа!
Возник вопрос:
Нужно найти диск с папкой допустим \puhp\instal
И запустить скрипт setup.cmd
При этом хотелось бы что бы не показывал сообщения о пустых дисках.
Оно как то так должно быть?
@echo off
set n=\puhp\instal\setup.cmd
for %%I in (C D E F G H I J K L M N O P Q R S T U V W) do dir "%%I:%n%"&&start "" "%%I:%n%"&&exit
echo УВЫ, ничего не найдено!
exit

[Цитировать]

    puhpol
  • 2
  • Стаж: 4 года 6 месяцев
  • Сообщений: 44
@echo off
::Назначаем переменной %n% путь и имя скрипта, который нужно запустить.
set n=\puhp\instal\setup.cmd
::Перебираем все буковки от C до W, для каждой проверяем выполнение команды dir (например, dir "C:\puhp\instal\setup.cmd"). При этом, если была ошибка выполнения (не существует/поврежден раздел либо нет такого файла), тогда происходит переход к следующей буковке. Если же команда выполнена без ошибок (&&), тогда исполняется следующая - запуск скрипта с нужной буковкой (например, start "" /b "C:\puhp\instal\setup.cmd"). Поскольку запуск без ожидания (если нужно ждать отработки скрипта setup.cmd, тогда запускать нужно start "" /b /w "%%I:%n%") - то сразу же после запуска выход exit. Если после запуска скрипта нам нужно еще чего-то запустить, можно сделать переход на метку (вместо exit -> goto:PostStart). Если удалить &&exit (&&goto:PostStart), тогда даже после удачного запуска скрипта перебор буковок будет продолжен (если будет найден еще один скрипт - он тоже будет запущен!). И, по завершении перебора, будет произведен переход к следующему пункту - echo УВЫ, ничего не найдено! (независимо от результатов поиска).
for %%I in (C D E F G H I J K L M N O P Q R S T U V W) do dir "%%I:%n%"&&start "" /b "%%I:%n%"&&goto:PostStart
::Если мы дошли сюда, значит, все буквы перебрали и скрипт не нашли
echo УВЫ, ничего не найдено!
exit
:PostStart
echo А это сообщение увидим при удачном запуске скрипта
exit

[Цитировать]

    puhpol
  • 2
  • Стаж: 4 года 6 месяцев
  • Сообщений: 44
conty9, Огромное СПАСИБО!!! az
Тады еще один вопрос:
Я правильно понял, файл setup.cmd так должон выглядеть?
@Echo Off
:: Назначение переменной
set n=\puhp\instal\
for %%I in (C D E F G H I J K L M N O P Q R S T U V W) do dir "%%I:%n%"
echo УВЫ, ничего не найдено!
:: Импорт твиков реестра
start /wait regedit /s %n%\uac.reg
:: Установка приложений
start /wait %n%\XnShellEx\start.cmd
start /wait %n%\UltraISO-9.6.5.3237.exe /S /I
start /wait %n%\SumatraPDF-3.0.exe /S /I
start /wait %n%\VLCMediaPlayer-2.2.1.exe /S /I
start /wait %n%\WinRAR.v5.30.exe /S /IRU
start /wait %n%\USB.Safely.Remove.v5.3.8.1233.exe /S /RU
start /wait %n%\SopCast.exe /S
start /wait %n%\npp.6.8.8.exe /S
start /wait %n%\2003_micro\Office2003micro.exe /y
start /wait %n%\2003_micro\Office2007support.exe
exit

[Цитировать]

    puhpol
  • 2
  • Стаж: 4 года 6 месяцев
  • Сообщений: 44
puhpol, зачем повторный поиск? Все делается проще
:: Назначаем рабочим каталог с бантиком :)
cd /d %~dp0
:: Импорт твиков реестра
regedit.exe /s uac.reg
:: Установка приложений
start /b /w .\XnShellEx\start.cmd
UltraISO-9.6.5.3237.exe /S /I
SumatraPDF-3.0.exe /S /I
VLCMediaPlayer-2.2.1.exe /S /I
WinRAR.v5.30.exe /S /IRU
USB.Safely.Remove.v5.3.8.1233.exe /S /RU
SopCast.exe /S
npp.6.8.8.exe /S
start /w .\2003_micro\Office2003micro.exe /y
start /w .\2003_micro\Office2007support.exe
exit
Если не нужно лицезреть окно консоли, тогда в первом скрипте используем /b для start
for %%I in (C D E F G H I J K L M N O P Q R S T U V W) do dir "%%I:%n%"&&start "" /b "%%I:%n%"&&exit


Показать сообщения:    

Текущее время: 26-Май 04:06

Часовой пояс: UTC + 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы