Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Закладки » Сценарии для Windows

Модерирует : KLASS, IFkO

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225

Открыть новую тему     Написать ответ в эту тему

KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Старые и смежные темы: по CMD и в Программах | по PowerShell | В помощь системному администратору | Прикладное программирование

PowerShell
Версии | Ассоциация и подпись сценариев
Сценарий для ассоциации файлов PowerShell и запуска неподписанных скриптов.
 
Прочее
Расширение возможностей
Функции
Write-Color
Output-DebugString
Провайдеры
Готовые скрипты
Полезные ссылки | Будет ли репозиторий PowerShell на ru-board?
Книги в PDF
Cheat Sheets
 

Cmd
Для перекодирования кириллицы 866<—>1251 пользуйтесь онлайн сервисом Перекодировщик кириллицы
 
Готовые решения и частые вопросы
 
Описания работы команд и символов участниками темы:
setlocal enabledelayedexpansion и переменные окружения
символы & и && в командной строке
Переменная %0
 
Полезные ссылки и утилиты

WSH (VBScript, JScript)
Программирование "удобняшек" на VBScript

Примечания:
• Большие куски кода заключайте в тэг [ more ]
• Чтобы не копировались концевые пробелы из форума, жмите на ссылку "Редактировать" в посте, и уже из редактора копируйте код без пробелов иначе сценарий может работать неправильно. Также для удаления концевых пробелов пользуйтесь скриптом от Nagual, или VBS-Скрипт-Модулем от ViSiToR.
• Сторонние консольные утилиты можно использовать только в виде готового решения и только в рамках сценариев. Никаких обсуждений и обучений работе с утилитами не предусмотрено и прямо запрещено правилами топика.
Шапка и около-темные вопросы |

Всего записей: 11063 | Зарегистр. 12-10-2001 | Отправлено: 13:40 17-02-2018 | Исправлено: YuS 2, 08:24 19-06-2021
Baltazar500



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex_Piggy,
Цитата:
А что нужно? По приведенному выше фрагменту - использовать проверку в WMIC.
Ну, задача стоит проверить ли пуст данный параметр, если пуст, переходить блоку отвечающему за открытие лотка привода Из предложенного больше подходит 2-й вариант )))
 
NIKZZZZ, хм получается тут нужно не через "if" идти а через "&&" проверяя операцию на предмет "успешности" ? ОК, буду пробовать.
Цитата:
for игнорирует пустые строки, так что findstr не нужен.
А, это был ошмёток от старого алгоритма, забыл убрать (там всё было примитивно, без какой либо конкретики ибо привод был один)
Цитата:
К стати, чтобы echo не выводило "Режим вывода команд на экран (ECHO) включен." , можно использовать echo. , пробел после точки не нужен.
Ну это я в курсе, просто я его использовал в паре с if и у меня что так, что так лезли лишние переводы строк при сравнении :\
Цитата:
Еще непонятно, что нужно проверять, присутствие CD или пустое VolumeName ?
Присутствие CD Пока отталкивался от банального наличия VolumeName и выхлоп wmic по cdrom досконально не изучал. Есть вариант получше ?
Цитата:
CD диск может быть и с пустым именем.
Сколько дисков задампил, но пока таких не попадалось Тем не менее, такую возможность исключать не буду и подрихтую алгоритм.

Всего записей: 2080 | Зарегистр. 19-09-2011 | Отправлено: 03:20 10-01-2019 | Исправлено: Baltazar500, 03:20 10-01-2019
NIKZZZZ



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Baltazar500

Цитата:
Есть вариант получше ?

Ну, вот самый простой, хотя можно и покороче придумать

Код:
@echo off
wmic cdrom where "Drive='i:'" get VolumeName /value 2> nul | find /i "VolumeName=" 1>nul && goto _loop
goto _error
:_loop

 

Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 03:50 10-01-2019
Baltazar500



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NIKZZZZ, не, я имел ввиду другое Под "вариантом получше" подразумевалось по другому отследить наличие диска, нежели через пустой параметр VolumeName ))

Всего записей: 2080 | Зарегистр. 19-09-2011 | Отправлено: 04:13 10-01-2019
NIKZZZZ



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Baltazar500
Ну, если не надо проверять, что это CD

Код:
@echo off
>nul 2>&1 vol i: && goto _loop
goto _error
:_loop

 

Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 04:29 10-01-2019
Deoptimizer

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Дублирую сюда вопрос, ответите кто сможет пожалуйста.

Всего записей: 315 | Зарегистр. 12-06-2015 | Отправлено: 17:39 18-01-2019
farag



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Deoptimizer
Странно, но с

Код:
 
Set-MpPreference -EnableNetworkProtection Enabled
 

твоя ссылка отказалсь открываться. И что ему не понравилось?..

Всего записей: 2474 | Зарегистр. 27-07-2009 | Отправлено: 09:32 21-01-2019
DarkMasterW

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
>taskkill /F /IM abc.exe
Неправильно указан текущий каталог.
 
Это как?

Всего записей: 284 | Зарегистр. 17-04-2010 | Отправлено: 05:46 23-01-2019
NIKZZZZ



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DarkMasterW
Ну, может, текущий каталог действительно не существует, поиск taskkill начинается именно с него, тогда запускать надо так

Код:
%SystemRoot%\System32\taskkill.exe /F /IM abc.exe /F /IM abc.exe


Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 06:03 23-01-2019
DarkMasterW

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Ну, может, текущий каталог действительно не существует

Это батник из 1 строчки.

Цитата:
%SystemRoot%\System32\taskkill.exe /F /IM abc.exe

Результат тот же...

Всего записей: 284 | Зарегистр. 17-04-2010 | Отправлено: 07:16 23-01-2019
NIKZZZZ



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DarkMasterW
А так ?

Код:
if defined PROCESSOR_ARCHITEW6432 start %SystemRoot%\Sysnative\cmd.exe /c "%~f0" %* & exit
taskkill.exe /F /IM abc.exe  

Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 07:24 23-01-2019
DarkMasterW

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Бесконечный циклический запуск cmd, закрытие, снова запуск. Пиды меняются минут 10 закрывал... При этом abc.exe живее всех живых

Всего записей: 284 | Зарегистр. 17-04-2010 | Отправлено: 07:48 23-01-2019
NIKZZZZ



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DarkMasterW
Это либо сильно ограниченные права пользователя, либо баг системы.
Попробуйте запустить батник с правами администратора.
 

Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 07:58 23-01-2019
Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Доброе время
DarkMasterW
А если так?
for /f "tokens=2" %%i in ('tasklist ^| findstr -i abc.exe') do taskkill /f /pid %%i
NIKZZZZ

Цитата:
файл d:\nul  
Можно с помощью DIR /X /A получить его короткое имя, а дальше уже удалить его по короткому имени.  
 Еще вариант - использовать \\.\d:\nul

Тот не нашел, зато новый получил. Это MSYS2 балуется. Позволяет как создать, так и удалить.
DIR /X /A - короткое имя не показывает
\\.\d:\nul - "Синтаксическая ошибка в имени файла, имени папки или метке тома."

Всего записей: 1883 | Зарегистр. 07-08-2002 | Отправлено: 08:04 23-01-2019
DarkMasterW

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Это либо сильно ограниченные права пользователя, либо баг системы.  

Права ограничены. Это песок. Причина подобного поведения непонятна, т.к. точно такой же батник выполняется на другой машине с точно таким же песком без проблем. Конфиги песка откопированы. Делигирование админа к положительным результатам не приводит. В то же время на второй машине при делегировании админа убиваются вообще все abc.exe даже запущенные вне песка, т.е. делегирование админа фактически выпускает наружу процесс. Здесь же те же самые жалобы на каталог. Может ли быть проблема в рабочем, а не текущем каталоге для taskkill? Как задать рабочий каталог для taskkill?

Всего записей: 284 | Зарегистр. 17-04-2010 | Отправлено: 08:05 23-01-2019
NIKZZZZ



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DarkMasterW

Цитата:
Как задать рабочий каталог для taskkill?

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

Цитата:
Это MSYS2 балуется.

Да побаловаться не проблема, нестандартными методами можно получить все, что угодно, можно попробовать, например выполнить del d:\nul* , может помочь.
 
 
 

Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 08:22 23-01-2019 | Исправлено: NIKZZZZ, 08:23 23-01-2019
DarkMasterW

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Это не причина, а следствие ограничения прав, и ругань на рабочий каталог может быть вызвана совершенно другой ошибкой, не имеющей к каталогу никакого отношения.  

Соглашусь лишь от части, т.к. не через батник, а через запуск cmd внутри песка все работает. При этом никаких админских прав не выдается. Системные каталоги доступны в виде РО, при модификации создается локальная копия.

Всего записей: 284 | Зарегистр. 17-04-2010 | Отправлено: 08:46 23-01-2019
YuS_2



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DarkMasterW
так, на всякий случай (ну, а вдруг! ) - а у батника какое имя?

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 15:26 23-01-2019
DarkMasterW

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
abc_stop.bat

Всего записей: 284 | Зарегистр. 17-04-2010 | Отправлено: 23:06 23-01-2019
DarkMasterW

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Там что-то со сменой директорий...
E:\>echo 1
1
 
E:\>cd d:
D:\
 
E:\>echo 2
2
 
Добавлено:
Создал ярлык на батник с указанием рабочей папки систем32 - заработало. Тем не менее остался вопрос, как избавится от этого цирка с конями? Т.е. действительно нужно всего лишь сменить рабочий каталог... cd не пашет =\ Заодно решилась и загадка почему на другой машине работало - там батник на другом разделе лежал =\

Всего записей: 284 | Зарегистр. 17-04-2010 | Отправлено: 01:50 24-01-2019 | Исправлено: DarkMasterW, 02:09 24-01-2019
2as

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DarkMasterW

Цитата:
cd не пашет
 
посмотрите здесь: Команда cd работает в консоли, но не работает из батника
 
Добавлю: ключ /d в команде cd используется когда необходимо сменить одновременно и диск и каталог назначения.
Можно разбить и на две команды - первой сменить диск, второй каталог, например:
1. C:\> D:
2. D:\> cd \temp
результат:    D:\temp>  
 
Одной командой:
C:>
1. C:> cd /d d:\temp  
результат:    D:\temp>

Всего записей: 3482 | Зарегистр. 09-09-2003 | Отправлено: 04:53 24-01-2019 | Исправлено: 2as, 05:08 24-01-2019
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225

Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Закладки » Сценарии для Windows


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru