puhpol
- Стаж: 10 лет
- Сообщений: 892
- Репутация:75[+] [-]
|
Приветствую господа! Есть скрипт:@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 Можно ли сделать что бы не проверялись катрийдеры? Когда скрипт начинает работу показывает окошко о пустом дисководе. Чем больше дырок на катрийдере, тем больше окошек... Где то это обсуждалось, но не нашел.....
Последний раз редактировалось: puhpol (2018-10-30 20:41), всего редактировалось 1 раз
|
Xemom1
- Стаж: 9 лет
- Сообщений: 862
- Репутация: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 Значения можно поставить свои. Правда не проверял!
|
puhpol
- Стаж: 10 лет
- Сообщений: 892
- Репутация:75[+] [-]
|
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 Поймешь про что оно....
|
puhpol
- Стаж: 10 лет
- Сообщений: 892
- Репутация:75[+] [-]
|
@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..... На пустые диски не ругается.... З.Ы. ПРивет Саня!
|
puhpol
- Стаж: 10 лет
- Сообщений: 892
- Репутация:75[+] [-]
|
ВСЕ ... Огромное спасибо разобрался:@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 СПАСИБО!
|
|
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
|
puhpol
- Стаж: 10 лет
- Сообщений: 892
- Репутация:75[+] [-]
|
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 (которое мигает)больше букав.
|
|
puhpol, в моем варианте код компактнее. И, по идее, он должен работать быстрее (вариант от Xemom1 делает разбор по токенам меток дисков). Хотя разница по времени - на уровне милисекунд.
|
Отправлено: 11-Янв-2016 11:32
(спустя 2 месяца 7 дней)
puhpol
- Стаж: 10 лет
- Сообщений: 892
- Репутация:75[+] [-]
|
Приветствую господа! Возник вопрос: Нужно найти диск с папкой допустим \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
|
|
@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
|
Отправлено: 11-Янв-2016 13:32
(спустя 1 час 7 минут)
Joker-2013
- Стаж: 9 лет 6 месяцев
- Сообщений: 2053
- Репутация:120[+] [-]
- Откуда: из прошлого
|
Я бы лично, несколько бы упрастил...@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 В начале обязательно кавычкиstartStart Запускает определенную программу или команду в отдельном окне. При запуске без параметров команда 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
|
|
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 для startfor %%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
|
Отправлено: 11-Янв-2016 17:01
(спустя 2 часа 23 минуты)
Отправлено: 11-Янв-2016 18:18
(спустя 1 час 17 минут)
nikzzzz
- Стаж: 9 лет
- Сообщений: 3114
- Репутация:127[+] [-]
|
17195не понял конструкции Если dir "%%I:%n%" выполнена без ошибки, выполнить start ....
|
Страница 1 из 2
Текущее время: 03-Янв 08:36
Часовой пояс: UTC + 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете прикреплять файлы к сообщениям Вы можете скачивать файлы
|
|