Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Задачи на bat-файлах

Автор: slech
Дата сообщения: 17.07.2006 22:09
Всем привет.
Есть такая проблемка.
Надо запустить емуль батником и что бы он спрятался.
Использую cmdow
cmdow /RUN /HID emule.exe - непомогает.
есть вариант

@echo off
emule.exe
cmdow | find /I "eMule v0.46"
получаем строчку вида:
cmdow 0x050212 1 684 Max Ina Ena Vis emule eMule v0.47a
задача содрать отсюда начало 0x050212
и вставляем в строчку
cmdow 0x050212 /HID

Может кто посоветует ка это осуществить ?
И ещё проблемка, если уже один емуль запущен то строчек может быть 2-е, как отсеять по пути запуска ?

Заранее спасибо.
Автор: Kirillhome
Дата сообщения: 18.07.2006 00:33
Всё-таки есть проблема...

Вот такой кусок кода (вывод списка подкаталогов)

Код:
for /r %%d in (.) do echo %%d >> %File1%
Автор: Ruslan FM
Дата сообщения: 18.07.2006 07:44

Цитата:

zh3ntos

А так пробовал?
FOR /F "tokens=1" %%i in ('dir /b /a-d /o-d /tw %dirProg%\*.xls') do @echo %%i

так тоже пробовал
видимо придется делать через временный файл.
(хочется обойтись без дополнительных файлов).

Добавлено:

Цитата:


for /r %%d in (.) do echo %%d >> %File1%


а не проще dir %katalog% /b >> %File1%
Автор: Kirillhome
Дата сообщения: 18.07.2006 09:31
Ruslan FM
Не проще
Указанный мной вариант выводит информацию о подкаталогах, а твой - о файлах, что несколько разные вещи


Разобрался, проблема оказалась в

Код:
setlocal ENABLEDELAYEDEXPANSION
Автор: Ruslan FM
Дата сообщения: 18.07.2006 10:20
Есть идеи, как найти в каталоге один файл (.xls) , отредактированный последним??
смог отсортировать и загнать в файл, но не могу прочитать только первую строку, или последнюю.
Автор: KapralBel
Дата сообщения: 18.07.2006 10:34
Ruslan FM
dir *.xls /o:-d >list.txt
Читаешь файл, как только прочитал одну строку выходи из цикла
Автор: Ruslan FM
Дата сообщения: 18.07.2006 10:45
KapralBel

а как читать одну строку из файла .
не нашел как это сделать стандартными средствами.
more , type не могут.
Автор: KapralBel
Дата сообщения: 18.07.2006 11:13
Ruslan FM

Код: @Echo Off
Set stroka=0
For /F %%a in (file.txt) Do Call :_P %%a
GoTo :EOF

:_P
If %Stroka%==1 GoTo :EOF
Set stroka=1
Echo %1
GoTo :EOF
Автор: Ruslan FM
Дата сообщения: 18.07.2006 11:57

Цитата:
For /F %%a in (file.txt) Do Call :_P %%a


для имен с пробелами
добавил ковычки и все заработало
For /F %%a in (file.txt) Do Call :_P "%%a"

СПАСИБО!!!!
Автор: evle
Дата сообщения: 18.07.2006 13:11
Ruslan FM
Что-то мне подсказывает, что вот так будет изящнее:

Код:
for /F %%i in ('dir /o:-d /b *.xls') do (echo %%i & goto :eof )
Автор: cluster
Дата сообщения: 18.07.2006 13:25
Ребят, а можно в *.cmd сменить цвет у пары слов? Баловался с COLOR - он меняет цвет всего текста
Автор: KapralBel
Дата сообщения: 18.07.2006 13:30
cluster
Посмотри в шапке ansi.sys
Автор: zubizub
Дата сообщения: 18.07.2006 14:56
В начале темы, описан бат создающий плейлист. Я вот хотел его усовершенствовать чтоб генерировал красивый HTML. Но столкнулся с проблемой - как сделать чтобы bat'ник выводил в файл символы "<" и ">"?
А то он их считает за прог код и отказывается работать
Автор: Smitis
Дата сообщения: 18.07.2006 15:09
zubizub

Цитата:
В начале темы, описан бат создающий плейлист. Я вот хотел его усовершенствовать чтоб генерировал красивый HTML. Но столкнулся с проблемой - как сделать чтобы bat'ник выводил в файл символы "<" и ">"?
А то он их считает за прог код и отказывается работать

Поставь перед этими символами символ ^
Ват так:

Код:
echo ^<TEXT^>
Автор: slech
Дата сообщения: 18.07.2006 17:10
To All
А с моей проблемкой никому ничего не известно ?
Автор: Simple Crypt
Дата сообщения: 19.07.2006 08:23
slech

Цитата:
Всем привет.
Есть такая проблемка.
Надо запустить емуль батником и что бы он спрятался.
Использую cmdow
cmdow /RUN /HID emule.exe - непомогает.
есть вариант

@echo off
emule.exe
cmdow | find /I "eMule v0.46"
получаем строчку вида:
cmdow 0x050212 1 684 Max Ina Ena Vis emule eMule v0.47a
задача содрать отсюда начало 0x050212
и вставляем в строчку
cmdow 0x050212 /HID

Может кто посоветует ка это осуществить ?
И ещё проблемка, если уже один емуль запущен то строчек может быть 2-е, как отсеять по пути запуска ?

Заранее спасибо.


Запуск в скрытом виде:
wait.cmd - это скрытно запускаемый батник. В данном примере создаётся автоматически, но можете использовать какой-нибудь готовый.

rem Запуск батника в скрытом режиме
@echo off
echo dir /s c:\^>log.txt>wait.cmd

echo Set WshShell = CreateObject("WScript.Shell") >start.vbs
echo WshShell.Run "cmd.exe /c wait.cmd", 0, false>>start.vbs

cscript.exe //b //nologo start.vbs

del /f /q start.vbs
del /f /q wait.cmd


Добавлено:
All
Каким образом в бат-файле можно изменить формат выводимой даты на отпределённый?
Например c DDMMYY на MMDDYYYY ?
Автор: monsoon
Дата сообщения: 20.07.2006 11:42
Можно ли в батнике проверить содержится ли к примеру символ "_" в названии файла (может быть в любой позиции) не перебирая символы по одному? Можно ли определить количество символов в названии также без перебора?
Автор: KapralBel
Дата сообщения: 20.07.2006 12:10
monsoon

Цитата:
Можно ли в батнике проверить содержится ли к примеру символ "_" в названии файла (может быть в любой позиции)

Нет (без перебора)
Можно выделить только файлы с подчеркиванием в названии *_*.*

Цитата:
Можно ли определить количество символов в названии также без перебора?

Нет (без перебора)
или используй другие вещи - VBS/JS например

Автор: slech
Дата сообщения: 20.07.2006 18:02
Simple Crypt
Спасибо конечно, но работать не хочет. всмысле что запускается всё равно окном.
Автор: KapralBel
Дата сообщения: 21.07.2006 09:16
slech
cmdow /RUN /HID emule.exe - Теоретически должно работать
Ибо
cmdow /RUN /HID winrar.exe - работает
Цитата:
@echo off
emule.exe
cmdow | find /I "eMule v0.46"
получаем строчку вида:
cmdow 0x050212 1 684 Max Ina Ena Vis emule eMule v0.47a

Сделай так

cmdow | find /I "eMule v0.46" >process.txt
For /F ....

И разбор файла по команде FOR

А вот с двумя запущенными из разных путей программами - не знаю
Ни один из консольный менеджеров процессов ни показывает путь (по крайней мере, те что у меня есть)
Автор: slech
Дата сообщения: 21.07.2006 09:40
KapralBel
есть утилитка такая pv

#pv -l | find "emule.exe"
emule.exe 2824 "E:\Work\My Documents\Program Files\Emule\emule.exe"


cmdow /RUN /HID calc неработает
cmdow /RUN /HID notepad работает

Вот у меня и есть проблема
как из строчки вида cmdow 0x050212 1 684 Max Ina Ena Vis emule eMule v0.47a вытащить 0x050212
что бы потом в качестве параметра послать cmdow.


Автор: KapralBel
Дата сообщения: 21.07.2006 10:16
slech

Код: @Echo Off
Set ID=0
For /F "tokens=1-9 skip=1 delims=^& " %%a in (1.txt) Do Call :_P %%a "%%i"
:IsID
Echo ID=%ID%
GoTo :EOF

:_P
if /i %2=="eMule" Set ID=%1
GoTo :EOF
Автор: slech
Дата сообщения: 21.07.2006 10:37
KapralBel
К сожалению почти ничего не понял
Автор: KapralBel
Дата сообщения: 21.07.2006 10:51
slech

Код:
@Echo Off

Rem Сброс процессов в файл process.txt
cmdow >process.txt

Rem Инициализация номера процесса
Set ID=0

Rem Перебор файла для поиска процесса eMule
For /F "tokens=1-9 skip=1 delims=^& " %%a in (process.txt) Do Call :_P %%a "%%i"

Rem Скрытие процесса
cmdow %ID% /hid

Rem Выход из батничка
GoTo :EOF

Rem процедура выделения ИД процесса
:_P

Rem Проверка условия Имя процесса=eMule и присвоение переменной его ИД
if /i %2=="eMule" Set ID=%1

Rem Выход из подпрограммы
GoTo :EOF
Автор: slech
Дата сообщения: 21.07.2006 11:34
KapralBel
Я тут немного измнил что бы быстрее сделать, но работать не хочет.
@Echo Off

Rem Сброс процессов в файл process.txt
cmdow | find "eMule v" >process.txt

Rem Инициализация номера процесса
Set ID=0

Rem Перебор файла для поиска процесса eMule
For /F "tokens=1-9 skip=1 delims=^& " %%a in (process.txt) Do Call :_P %%a "%%i"

Rem Скрытие процесса
Rem cmdow %ID% /hid
echo %ID% >ID.txt
Rem Выход из батничка
GoTo :EOF

Rem процедура выделения ИД процесса
:_P

Rem Проверка условия Имя процесса=eMule и присвоение переменной его ИД
if /i %2=="eMule" Set ID=%1

Rem Выход из подпрограммы
GoTo :EOF


Смотрим ID.txt видим 0
В моём случае ID
0x0C03B2 1 3496 Max Ina Ena Hid emule eMule v0.46c

Как выделить первые 9-ть символов из файла ?
Автор: KapralBel
Дата сообщения: 21.07.2006 11:46
slech
Если ты фильтруешь FINDом, то убери в команде FOR подстроку Skip=1, которая при разбое файла пропускает первую строку (которая в оригинале является шапкой)
А так как Финд - сбрасывает одну строку (теоретически) - то она и пропускается

Добавлено:
Кстати
1 .я посмотрел у себя некоторые процессы имеют ИД не только из 9 символов
2. А первую подстроку, до пробела выделяет псевдопеременная %%a из команды FOR
Автор: slech
Дата сообщения: 21.07.2006 11:51
KapralBel
Да нет и в твоём первоначальном варианте гдето есть проблемка.

Rem Перебор файла для поиска процесса eMule
For /F "tokens=1-9 skip=1 delims=^& " %%a in (process.txt) Do Call :_P %%a "%%i"

Rem процедура выделения ИД процесса
:_P

Rem Проверка условия Имя процесса=eMule и присвоение переменной его ИД
if /i %2=="eMule" Set ID=%1

гдето тут проблема, даже если без find

Добавлено:
KapralBel
Блин извени конечно за мою тупость, но не могбы прояснить как
выделить эти самые 9 символов и присвоить их чему-нибудь что бы передать cmdow

Добавлено:
У меня все процессы не больше 9-ти символов.
Автор: KapralBel
Дата сообщения: 21.07.2006 13:56
slech

Цитата:
а нет и в твоём первоначальном варианте гдето есть проблемка.

У меня все работало

Выделение первых 9 символов из переменной string1
Set string2=%string1:~0,9%

У меня есть процессы по 10 символов в идентификаторе

Попробуй такой вариант

Код: @Echo Off
cmdow | find "eMule v">process.txt
Set ID=0
For /F "tokens=1" %%a in (process.txt) Do Set ID=%%a
cmdow %ID% /hid
GoTo :EOF
Автор: slech
Дата сообщения: 21.07.2006 15:55
KapralBel
Во теперь работает и я уже даже понял как.
Спасибо огромное.
Автор: PetrK
Дата сообщения: 22.07.2006 19:16
Подскажите, как сделать временную задержку на исполнение программы.

Хочу создать ярлык или bat-файл для task manager и положить его в папку автозагрузка. Нужно это для того, чтобы при загрузки компьютера грузился task manager, но не сразу, а с задержкой.

Спасибо.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Вернуть библиотеку АТМ (поддержка шрифтов Type 1)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.