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 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 (2015-07-13 17:37), всего редактировалось 1 раз
|
nikzzzz
- Стаж: 9 лет
- Сообщений: 3114
- Репутация:127[+] [-]
|
Маленькую лепту внесу. Вывод спец. символов в консоль или файлset str="123^123<123>123%%123(123)123|123" for /f %%a in (%str%) do echo:%%a
|
Отправлено: 02-Окт-2015 13:47
(спустя 3 месяца 20 дней)
zxen
- Стаж: 10 лет
- Сообщений: 263
- Репутация:21[+] [-]
- Откуда: Siberia
|
Данный cmd, перемонтирует диск с которого он запущен, на другую букву, в данном случае на k:@echo off cd /d c: for /f "tokens=*" %%a in (' mountvol %~d0 /l ') do ( mountvol %~d0 /d & mountvol k: %%a & exit )
|
Отправлено: 16-Янв-2016 21:56
(спустя 3 месяца 14 дней)
puhpol
- Стаж: 10 лет
- Сообщений: 892
- Репутация:75[+] [-]
|
Приветствую господа! Опять прошу помощи по скриптам..... (я честно пытался сам разобраться,но такие выраженияnot Задает выполнение команды только в случае невыполнения условия. errorlevel число Условие выполняется, если предыдущая команда, обработанная интерпретатором команд Cmd.exe, завершилась с кодом, равным или большим числа. команда Команда, которая должна быть обработана в случае выполнения условия. строка1==строка2 Условие выполняется, если строки строка1 и строка2 совпадают. Строки могут быть заданы явно или могут быть пакетными переменными (например, %1). Явно заданные строки нет необходимости заключать в кавычки. exist имя_файла Условие выполняется, если существует файл с именем имя_файла. оп_сравнения Трехзначный оператор сравнения. В следующей таблице перечислены допустимые значения оп_сравнения. меня вводят в ступор.... Задача: При установки ВИНДОВС нужно запустить программу только в редакции STARTER. (интеграция в WIM файл - не удобна) В скрипте активатора нашел такие строки:REG QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName | FINDSTR /i BASIC IF NOT ERRORLEVEL 1 CSCRIPT %WinDir%\system32\slmgr.vbs -ipk 36T88-RT7C6-R38TQ-RV8M9-WWTCY REG QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName | FINDSTR /i STARTER IF NOT ERRORLEVEL 1 CSCRIPT %WinDir%\system32\slmgr.vbs -ipk 36Q3Y-BBT84-MGJ3H-FT7VD-FG72J И если мои догадки верны, скрипт должен выглядеть так:REG QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName | FINDSTR /i STARTER IF NOT ERRORLEVEL 1 START /b /w data\Panel.exe Вопрос:Я правильно понимаю? Такое вообще возможно? или я сам себе на фантазировал.......
|
rbskin
- Стаж: 9 лет 9 месяцев
- Сообщений: 35
- Репутация:0[+] [-]
|
Приветствую! Господа. В чем ошибка? При такой записи - работает FOR %%i IN (C D E F G H I J K L N M O P Q R S T U V W X Y Z) DO IF EXIST %%i:\_Soft.Port\ start """" %%i:\_Soft.Port\MiniTool_Partition_Wizard_Server_9.0\PartitionWizard.exe -ai1 & exit а в этом случае - тишина set MyName=\_Soft.Port\MiniTool_Partition_Wizard_Server_9.0\PartitionWizard.exe -ai1 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%"&&exit echo УВЫ, ничего не найдено! exit
|
SunOK
- Стаж: 10 лет
- Сообщений: 352
- Репутация:32[+] [-]
- Откуда: Україна, Перлина Поділля
|
rbskin, возможные варианты ашипок: 1. Пробел в кавычках (сужу по сообщению)2. Ключ -ai1 мешает выполнению команды dir. 3. Допустимо ли для команды dir использование имени файла в переменной? (сам не знаю)
Последний раз редактировалось: SunOK (2016-01-19 20:19), всего редактировалось 1 раз
|
puhpol
- Стаж: 10 лет
- Сообщений: 892
- Репутация:75[+] [-]
|
175183. Допустимо ли для команды dir использование имени файла в переменной? (сам не знаю) Судя по написанному выше имя файла можно. А вот ключ я бы точно не там писал.... 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 -ai1 """"%%I:%MyName%"&&exit echo УВЫ, ничего не найдено! exit Хотя меня в данном случае слушать не стоит, еще тот скриптописец.....
|
Отправлено: 19-Янв-2016 22:02
(спустя 1 час 46 минут)
nikzzzz
- Стаж: 9 лет
- Сообщений: 3114
- Репутация:127[+] [-]
|
Чтобы не перебирать все буквы@echo off for /f "tokens=1,* delims= " %%a in ('fsutil fsinfo drives ^| more') do set drivers=%%b echo %drivers% for %%a in (%drivers%) do echo %%a
|
rbskin
- Стаж: 9 лет 9 месяцев
- Сообщений: 35
- Репутация:0[+] [-]
|
nikzzzz Приветствую! Обе записи (приведены выше) работают при ссылке на .exe файл, а при добавлении ключа вторая запись не хочет.
|
nikzzzz
- Стаж: 9 лет
- Сообщений: 3114
- Репутация:127[+] [-]
|
rbskin, Можно попробовать так@echo off set MyName=_Soft.Port\MiniTool_Partition_Wizard_Server_9.0\PartitionWizard.exe for /f "tokens=1,* delims= " %%a in ('fsutil fsinfo drives ^| more') do set drives=%%b 1>nul 2>&1 (for %%a in (%drives%) do (dir "%%a%MyName%") && (start "" "%%a%MyName%" -ai1) && goto :eof) echo УВЫ, ничего не найдено! goto :eof
|
sergeysvirid
- Стаж: 9 лет
- Сообщений: 2587
- Репутация:127[+] [-]
- Откуда: 65 регион (GMT+11)
|
17516В чем ошибка? При такой записи - работает FOR %%i IN (C D E F G H I J K L N M O P Q R S T U V W X Y Z) DO IF EXIST %%i:\_Soft.Port\ start """" %%i:\_Soft.Port\MiniTool_Partition_Wizard_Server_9.0\PartitionWizard.exe -ai1 & exit а в этом случае - тишина set MyName=\_Soft.Port\MiniTool_Partition_Wizard_Server_9.0\PartitionWizard.exe -ai1 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%"&&exit echo УВЫ, ничего не найдено! exit Может быть в том, что в пути у Вас после буквы диска и перед переменной не стоит символа обратного слэша "\" да и как писалось выше ключик ai1 наверное не там указывать надо. Я такой же скриптописец, как и puhpol , но попробуйте вот так: 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 "" /w -ai1 -gm2 "%%I:\%MyName%"&&exit
|
nikzzzz
- Стаж: 9 лет
- Сообщений: 3114
- Репутация:127[+] [-]
|
Да ошибка в том, что ищется файл с именем "PartitionWizard.exe -ai1", а не "PartitionWizard.exe", а такого файла естественно нет. Ну, и слеша не хватает.
|
rbskin
- Стаж: 9 лет 9 месяцев
- Сообщений: 35
- Репутация:0[+] [-]
|
nikzzzz sergeysvirid Приветствую! Попробовал варианты. УВЫ, ничего!
|
Отправлено: 20-Янв-2016 12:19
(спустя 1 час 18 минут)
|
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
|
rbskin
- Стаж: 9 лет 9 месяцев
- Сообщений: 35
- Репутация:0[+] [-]
|
conty9 Приветствую! Спасибо за ответ. Теперь все прекрасно работает.
|
Страница 1 из 8
Текущее время: 14-Дек 06:41
Часовой пояс: UTC + 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете прикреплять файлы к сообщениям Вы можете скачивать файлы
|
|