[Quote]

    puhpol
  • 2
  • Longevity: 8 years 10 months
  • Posts: 885
  • REPUTATION:72

    [+] [-]
Приветствую господа!
Есть скрипт:
@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
Можно ли сделать что бы не проверялись катрийдеры?
Когда скрипт начинает работу показывает окошко о пустом дисководе. Чем больше дырок на катрийдере, тем больше окошек...
Где то это обсуждалось, но не нашел.....


Last edited by puhpol on 2018-10-30 20:41; edited 1 time in total

[Quote]

    Xemom1
  • 175
  • Longevity: 8 years 8 months
  • Posts: 862
  • REPUTATION:88

    [+] [-]
Привет!
@echo off
set n=\PUH\wind\Setup64.cmd
for %%a 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 (
for /F "tokens=*"  %%i in (' vol %%a: ') do (
if exist %%a:%n% start %%a:%n%
if exist %%a:%n% exit
)
)
exit
Значения можно поставить свои.
Правда не проверял!

[Quote]

    puhpol
  • 2
  • Longevity: 8 years 10 months
  • Posts: 885
  • REPUTATION:72

    [+] [-]
Xemom1, Приветствую!
Спасибо огромное! Только вот я пялился сейчас на все это дело.... И так и не понял как скрипт под себя переделать....
Имею на данный момент вот:
@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:\puhp set PUH=%%I:
(cmdow @ /HID) & (pecmd.exe load %PUH%\puhp\Programs\menu\setup.ini)
Exit
Поймешь про что оно....

[Quote]

    puhpol
  • 2
  • Longevity: 8 years 10 months
  • Posts: 885
  • REPUTATION:72

    [+] [-]
@echo off
set n=\puhp\Programs\menu\
for %%a 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 (
for /F "tokens=*"  %%i in (' vol %%a: ') do (
if exist %%a:%n% start %%a:(cmdow @ /HID) & (pecmd.exe load %n%\setup.ini)
if exist %%a:%n% exit
)
)
exit
Этот вариант отрабатывает, но не закрывается окошко CMD..... На пустые диски не ругается....
З.Ы. ПРивет Саня!

[Quote]

    puhpol
  • 2
  • Longevity: 8 years 10 months
  • Posts: 885
  • REPUTATION:72

    [+] [-]
ВСЕ ... Огромное спасибо разобрался:
@echo off
set n=\puhp\Programs\menu
for %%a 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 (
for /F "tokens=*"  %%i in (' vol %%a: ') do (
if exist %%a:%n% start %%a:pecmd.exe load %n%\setup.ini
if exist %%a:%n% exit
)
)
exit
То что доктор прописал.....Xemom1 СПАСИБО!

[Quote]

    Guest
  • REPUTATION:0

    [+] [-]
puhpol,
@echo off
set n=\puhp\Programs\menu\setup.ini
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 pecmd.exe load "%%I:%n%"&&exit
echo УВЫ, ничего не найдено!
exit

[Quote]

    puhpol
  • 2
  • Longevity: 8 years 10 months
  • Posts: 885
  • REPUTATION:72

    [+] [-]
conty9, Приветствую!
Спасибо, уже прочитал.....
А вот вопрос: А чем хуже , или в чем разница по сравнению с этим:
@echo off
set n=\puhp\Programs\menu
for %%a 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 (
for /F "tokens=*"  %%i in (' vol %%a: ') do (
if exist %%a:%n% start %%a:pecmd.exe load %n%\setup.ini
if exist %%a:%n% exit
)
)
exit
Уже говорил что скрипты понимаю только на интуитивном уровне...
Отрабатывают скрипты почти одинаково... Только в твоем варианте в окошке CMD (которое мигает)больше букав.

[Quote]

    Guest
  • REPUTATION:0

    [+] [-]
puhpol, в моем варианте код компактнее. И, по идее, он должен работать быстрее (вариант от Xemom1 делает разбор по токенам меток дисков). Хотя разница по времени - на уровне милисекунд.

[Quote]

    puhpol
  • 2
  • Longevity: 8 years 10 months
  • Posts: 885
  • REPUTATION:72

    [+] [-]
Приветствую господа!
Возник вопрос:
Нужно найти диск с папкой допустим \puhp\instal
И запустить скрипт 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%&&start setup.cmd
echo УВЫ, ничего не найдено!
exit

[Quote]

    Guest
  • REPUTATION:0

    [+] [-]
@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

[Quote]

    puhpol
  • 2
  • Longevity: 8 years 10 months
  • Posts: 885
  • REPUTATION:72

    [+] [-]
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

[Quote]

    Joker-2013
  • 1039
  • Longevity: 8 years 3 months
  • Posts: 2053
  • REPUTATION:120

    [+] [-]
  • Location: из прошлого
Я бы лично, несколько бы упрастил...
@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 УВЫ, ничего не найдено!
::Переход в папку файлов
cd /d  "%n%"
:: Импорт твиков реестра
regedit /s "uac.reg"
:: Установка приложений
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
2003_micro\Office2003micro.exe /y
2003_micro\Office2007support.exe
exit
если уж будешь использовать start, то так:
start /wait "" "file.exe" command
В начале обязательно кавычки

start

Start Запускает определенную программу или команду в отдельном окне. При запуске без параметров команда start создает новое окно командной строки.
Синтаксис
start ["заголовок"] [/dпуть] [/min] [/max] [{/separate | /shared}] [{/low | /normal | /high | /realtime | /abovenormal | belownormal}] [/wait] [имя_файла] [параметры]
Параметры
"заголовок"
Указывает заголовок, выводимый в области заголовка окна.
/dпуть
Указывает каталог запуска.
/i
Передает начальные установки среды интерпретатора Cmd.exe в новое окно командной строки.
/min
Запускает новое окно командной строки в свернутом виде.
/max
Запускает новое окно командной строки в развернутом виде.
/
Запускает 16-битные программы в отдельном пространстве памяти.
/shared
Запускает 16-битные программы в отдельном пространстве памяти.
/low
Запускает приложение с низким приоритетом.
/normal
Запускает приложение с нормальным приоритетом.
/high
Запускает приложение с высоким приоритетом.
/realtime
Запускает приложение с приоритетом реального времени.
/abovenormal
Запускает приложение с приоритетом выше среднего.
/belownormal
Запускает приложение с приоритетом ниже среднего.
/wait
Запускает приложение с ожиданием окончания его работы.
/b
Запускает приложение без открытия нового окна командной строки. Обработка комбинации клавиш CTRL+C не производится, пока приложение не разрешит обработку CTRL+C. Для прерывания приложения следует использовать CTRL+BREAK.
имя_файла
Задает команду или программу для запуска.
параметры
Задает параметры, которые будут переданы вызываемой программе.
Примечания
Неисполняемые файлы можно запустить через сопоставление файла с приложением. Для этого просто введите имя файла (как команду). Для получения дополнительных сведений о создании этих сопоставлений в командном сценарии используйте команды assoc и ftype, см. Справочник.
Когда выполняется команда, в которой есть строка «CMD», являющаяся первым элементом без классификаторов расширения или пути, «CMD» заменяется значением переменной COMSPEC. Таким образом запрещается запуск cmd из текущего каталога.
При выполнении приложения 32-разрядного графического интерфейса пользователя, команда cmd не дожидается завершения приложения перед возвращением в командную строку. Этого не происходит, если приложение запускается из командной строки.
Когда выполняется команда, первый элемент которой не содержит расширения, CMD.EXE использует значение переменной среды PATHEXT для определения расширений, поиск которых будет производиться и порядок их поиска. По умолчанию значения для переменной PATHEXT: .COM, .EXE, .BAT, .CMD (т. е., синтаксис такой же, как у переменной PATH; различные элементы разделяются точками с запятой).
Когда ведется поиск исполняемого файла и не находится соответствующего расширения, команда start начинает поиск каталога. Если он существует, команда start отрывает программу Explorer.exe по этому маршруту.
Примеры
Для того чтобы запустить программу Myapp, но при этом остаться в текущем окне командной строки, следует использовать следующую команду:
start myapp

Information from puhpol


Ошибочка не большая...
B - запуск приложения без создания нового окна с отключением обработки сочетания клавиш CTRL+C. Если приложение не обрабатывает сочетание клавиш CTRL+C самостоятельно, единственным способом его прерывания является использование сочетания клавиш CTRL+Break.
WAIT - Запуск приложения с ожиданием его завершения.

[Quote]

    Guest
  • REPUTATION:0

    [+] [-]
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

[Quote]

    korsak7
  • 107
  • Longevity: 8 years 9 months
  • Posts: 1082
  • REPUTATION:62

    [+] [-]
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
dir? не понял конструкции ai

[Quote]

    nikzzzz
  • 215
  • Longevity: 8 years 8 months
  • Posts: 3114
  • REPUTATION:127

    [+] [-]
17195не понял конструкции
Если dir "%%I:%n%" выполнена без ошибки, выполнить start ....

Page 1 of 2


Display posts:    

Current time is: 02-Oct 05:17

All times are UTC + 3


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum