![]() |
|
Модераторы: bartram, Akella |
![]()
|
|
| MrDmitry |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 556 Регистрация: 10.11.2006 Репутация: нет Всего: нет |
Всем привет. Появилось несколько вопросов по командной строке
1. Как в cmd написать логическую операцию сравнения? То есть например в нормальных языках программирования можно написать так
В cmd же если я пишу любые другие символы кроме как == выдается ошибка (( Google не помог. 2. Как я понял в cmd невозможно воспроизводить звук. Но это возможно в vbs. Пришла идея сделать так записать файл vbs
Но проблема в том что не могу экранировать AS. И если вызвать файл beep.vbs из cmd то скорее всего у нас появится окно, которое будет висеть пока не проиграется файл. От него как нибудь можно избавится? 3 в скрипте который я написал пользователь может запустить несколько раз один и тот же процесс. Все процессы удаленные, поэтому параметр taskkill /im имя_процесса не подходит. Нужно как то узнать каждый раз при запуски процесса его pid. Думал в начале выводить содержимое tasklist в файл, в файле сортировать нужные мне процессы (процессы всегда отображаются в порядке их включения). Но в cmd как то не удобно работать с файлами и строками. Может быть есть какие нибудь варианты узнавать pid вновь запущенного процесса?? |
||||
|
|||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 42 Всего: 454 |
1.
2. Используй cscript хост. 3. Вот почему нужно использовать батники, когда есть VBS/JS/PS-скрипты? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| 01MDM |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 273 Регистрация: 10.5.2008 Где: Default City Репутация: 29 Всего: 29 |
Можно:
Где '[char] 0x7' заменяешь соответстветствующим символом.
Это две разные ниши. Иногда удобней накатать пакетный файл со списком команд и примитивными условиями, чем писать отдельную тулзу. -------------------- Вопросы в личке останутся без ответов. |
||||||
|
|||||||
| MrDmitry |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 556 Регистрация: 10.11.2006 Репутация: нет Всего: нет |
Но как раз сейчас мне быстрее и удобнее накатать bat файл чем писать на bat файлах. If с отрицанием нужен всего лишь для удобства. Использование vbs js ps для поставленной задачи не нужны
Это сообщение отредактировал(а) MrDmitry - 26.2.2011, 14:23 |
|||
|
||||
| mihanik |
|
|||
![]() -=Белый Медведь=- ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 4054 Регистрация: 24.4.2006 Где: г. Тверь Репутация: 61 Всего: 109 |
||||
|
||||
| MrDmitry |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 556 Регистрация: 10.11.2006 Репутация: нет Всего: нет |
да я понял, с воспроизведением музыки поступил так
также разобрался с if конструкцией
А вот с pid процесса все не как не могу разобраться. сейчас делаю так
в итоге получаю файлик только с нужными мне процессами и pid. Причем процессы в файле расположены в точности в порядке их запуска. Но теперь как то нужно удалить все не нужное оставив только имя и pid процесса. А обрабатывать все это дело в bat файле я не знаю как Это сообщение отредактировал(а) MrDmitry - 26.2.2011, 20:10 |
||||||
|
|||||||
| 01MDM |
|
||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 273 Регистрация: 10.5.2008 Где: Default City Репутация: 29 Всего: 29 |
MrDmitry,
Я думал нужен beep. А не проще:
-------------------- Вопросы в личке останутся без ответов. |
||||||||
|
|||||||||
| MrDmitry |
|
||||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 556 Регистрация: 10.11.2006 Репутация: нет Всего: нет |
@echo off start "" "C:\1.wav" не проще, так открывается проигрыватель и воспроизводит файл. А мой способ просто воспроизводит звук файл без всяких видимых окон. за код спасибо |
||||||||||
|
|||||||||||
| MrDmitry |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 556 Регистрация: 10.11.2006 Репутация: нет Всего: нет |
возник еще вопросик
код
хорошо работает. А как можно изменить определенную строку, удалить, или записать в переменную? Нужная строка заранее известна. Пробовал конструкцию
Но она не работает (( |
||||
|
|||||
| 01MDM |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 273 Регистрация: 10.5.2008 Где: Default City Репутация: 29 Всего: 29 |
MrDmitry,
Если ты все хочешь сделать в теле цикла, и устанавливаешь переменные и сразу к ним обращаешься, то необходимо включить отложенное расширение переменной среды. В твоем примере:
Если надо взять только третью строку, то можно так:
-------------------- Вопросы в личке останутся без ответов. |
||||
|
|||||
| MrDmitry |
|
||||||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 556 Регистрация: 10.11.2006 Репутация: нет Всего: нет |
У меня еще один самый последний вопрос и мой скрипт будет готов ))
Собственно есть файл структуры
Удаляю третью строку
Остается
Теперь мне нужно добавить еще одну строку но чтоб нумерация продолжилась со второго столца
Попробовал сделать так
Мой способ начинает нумеровать с начало. То есть получаем
А как сделать как мне нужно? Чтоб нумерация продолжала записываться в файл с последнего значения второго столбца? |
||||||||||||
|
|||||||||||||
| 01MDM |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 273 Регистрация: 10.5.2008 Где: Default City Репутация: 29 Всего: 29 |
MrDmitry,
Как дописывать, по какому принципу, из какого источника, я не понял. -------------------- Вопросы в личке останутся без ответов. |
||||||
|
|||||||
| MrDmitry |
|
||||||||||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 556 Регистрация: 10.11.2006 Репутация: нет Всего: нет |
Ну смотри. Я получаю список запущенных процессов по имени окна
Затем формирую список
то есть беру pid из файла dat1.txt и нумерую его
Теперь предположим я уничтожаю процесс 2 с pid 745
Получается что в файле остается
А через некоторое время я запускаю новый процесс с новым портом
И нужно чтоб получился файлик
Как я пытаюсь осуществить писал выше, но мой способ начинает нумерацию заново ((((( Вывожу список для уничтожения процесса так
Если банально, то все эти манипуляции я делаю для того чтобы узнать pid выбранного процесса и его уничтожить. Может быть есть и более легкий способ осуществить мою затею, но мне в голову пришел только такой вариант Это сообщение отредактировал(а) MrDmitry - 28.2.2011, 12:37 |
||||||||||||||||
|
|||||||||||||||||
| 01MDM |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 273 Регистрация: 10.5.2008 Где: Default City Репутация: 29 Всего: 29 |
MrDmitry,
А откуда берется порт? Вот, как пример, вариант с калькуляторами без файла-списка. Сначала запускаем:
Сам батник:
-------------------- Вопросы в личке останутся без ответов. |
||||
|
|||||
| MrDmitry |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 556 Регистрация: 10.11.2006 Репутация: нет Всего: нет |
вот так берется порт
то есть при каждом запуске порт увеличивается на 1 Твой пример с калькулятором у меня не работает ( |
|||
|
||||
![]()
|
| Правила форума "Windows" | |
|
|
Запрещается! 1. Обсуждать взлом и делиться кряками 2. Способствовать созданию и распространению вирусов
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, December, bartram, Akella. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MS Windows | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |