Ru-Board.club
← Вернуться в раздел «Программы»

» Командная строка, батники, сценарии (bat, cmd)

Автор: KapralBel
Дата сообщения: 14.09.2006 10:57
Zitz
Если не трудно то и исходники кинь (если С)

Автор: wader
Дата сообщения: 14.09.2006 11:21
Zitz
Есть такая фигня с GUI программами. Т.е. comand.com их просто не ждет, а консольные ждет, всегда.

Если прога консольная, то система за тебя создаст консоль.
А при запуске из bat файла будет использоваться текущая консоль, т.е. ничего лишнего на экране не появится.

P.S.
Если собираешь в студии установи /SUBSYSTEM:CONSOLE в опциях линкера
Автор: Zitz
Дата сообщения: 14.09.2006 11:45
wader
Проблему решил.

Код: start /wait oscheck.exe
Автор: wader
Дата сообщения: 14.09.2006 11:57
Zitz

Цитата:


Код: start /wait oscheck.exe

Так все работает. Но с консолью все равно попробую, спасибо.
Автор: Zitz
Дата сообщения: 14.09.2006 12:01

Цитата:
Еще бы это не работало

Так я собственно это и хотел выяснить

Цитата:
А в win9x разве не ключ /W используется?

Да, это тот же самый ключ. Где ж ты раньше-то был?
Автор: KapralBel
Дата сообщения: 14.09.2006 12:08
Zitz
Мне не надо, я определяю тип системы другими методами
Я хотел помочь тебе
Там, где мне нужно стоит не батнички, а Kixtart
Автор: ATZATZ
Дата сообщения: 14.09.2006 13:53
Всем привет.Есть скрипт такого вида:
...
set /p more=enter filename:
set /p drive=ented diskname:
cd /d %drive%:\ &&dir /s %more%
...
Нужно выковырять оттуда путь найденного файла.Т.е диск:\папка\папка нужна помощь,ато сам в for доконца въехать не могу
Автор: wader
Дата сообщения: 14.09.2006 14:05
ATZATZ
А если файлов будет много?
Все пути нужны?
Автор: KapralBel
Дата сообщения: 14.09.2006 14:16
ATZATZ
%~dpI
Автор: ATZATZ
Дата сообщения: 14.09.2006 14:17
Врядли. они ищутся из tasklist хотя чем черт не шутит ?лучше уж все !
Автор: KapralBel
Дата сообщения: 14.09.2006 14:21
ATZATZ
Переформулируй задачу - что ты хочешь вообще
Автор: ATZATZ
Дата сообщения: 14.09.2006 14:33
KapralBel
Я хочу въехать в for А задача такая: перейти в директорию, где находится ексешник висящий в процессах(tasklist,который я делаю предварительно) дабы посмотреть:чего там вообще происходит
Автор: KapralBel
Дата сообщения: 14.09.2006 14:59
ATZATZ
Как ты получаешь имя файла, и путь к нему?
Автор: wader
Дата сообщения: 14.09.2006 15:10
ATZATZ
Под какую винду пишешь? или нужен универсальный батник?

P.S.
Жаль что команда CHOICE в прошлом осталась.
Автор: ATZATZ
Дата сообщения: 14.09.2006 15:22
KapralBel
написал вот такой код :
@echo off
:_reload
cls
tasklist
echo press 1 for tasskill or 2 for find file or 3 to exit
set /p choice=your choice ?:
if /i "%choice%"=="1" goto :_taskkill
if /i "%choice%"=="2" goto :_dir
if /i "%choice%"=="3" goto :EOF
goto :_error
:_taskkill
set /p task=kill task (enter name):
for %%i in ('tasklist') do taskkill /f /t /im %task%
echo press 1 to exit or 2 to continue
set /p replay=your choice ?:
if /i "%replay%"=="2" goto :_reload
if /i "%replay%"=="1" goto :EOF
goto :_error
:_dir
set /p more=enter filename:
set /p drive=ented diskname:
cd /d %drive%:\ &&dir /s %more%
echo press 1 for taskkill 2 for find new file or 3 ot exit
set /p responce= your choice ?:
if /i "%responce%"=="1" goto :_taskkill
if /i "%responce%"=="2" goto :_dir
if /i "%responce%"=="3" goto :_EOF
goto :_error
:_error
echo Error.Press 1 for exit or 2 for load again
set /p error=your choice ?:
if /i "%error%"=="1" goto :EOF
if /i "%error%"=="2" goto :_reload
goto :_error

много заморочек , но ето для удобства (писал не для себя)поиск файла через copy/paste
и результате выполнения dir /s выводит сам знаеш что а нужно только (например) C:\Program Files\ICQ и потом на выбор перейти в C:\Program Files\ICQ илиотстрелить процесс или выйти из цикла



Добавлено:
wader
под XP с SP1 на SP2 тоже должно работать корректно (ато их фиг поймеш :на одной все OK а да другой -вилы )
ps : я вот думаю что C:\Program Files\ICQ надо будет как-нидудь загнать в переменную...
Автор: KapralBel
Дата сообщения: 14.09.2006 16:23
wader
Программу Choce.com - можно скопировать с 98-й в ХП и будет работать

ATZATZ
Так вводи путь в формате c:\Путь
а переход в папку по команде PushD
Автор: wader
Дата сообщения: 14.09.2006 17:28
KapralBel
Я в курсе, хотел обойтись штатными средствами

P.S.
Как можно сохранить stdout в переменную? Без временных файлов.
Автор: KapralBel
Дата сообщения: 15.09.2006 10:31
wader
Можно конечно и штатными
Насчет STDOUT - никак
Автор: wader
Дата сообщения: 15.09.2006 11:17
KapralBel
Эх. Нет в жизни совершенства.

ATZATZ
Путь достается очень просто.


Код:
...
set /p more=enter filename:
set /p basepath=ented basepath:
cd /d %basepath% && dir /s %more% | find "%basepath%" /I
...
Автор: ATZATZ
Дата сообщения: 15.09.2006 12:17
wader
Ага. Ето точно Да и код подошел почти на 100% Спасибо! А как все это получить без слов "содержимое папки" ?
Автор: wader
Дата сообщения: 15.09.2006 12:47
ATZATZ
Так это твой код, я чуть-чуть изменил

Насчет получить без "Содержимое папки", повторюсь:

Цитата:

создаешь батник
Код: cd %3

На вход ему даешь строку " Содержимое папки C:\temp\1231\1231"
в %3 находится полный путь "C:\temp\1231\1231"
Автор: 1user1
Дата сообщения: 15.09.2006 20:48
Подскажите pls текст батника - автоматический запуск ipconfig в консоле.
Автор: Yuk
Дата сообщения: 15.09.2006 21:15
1user1
Так?
cmd /k ipconfig

Или так?
ipconfig
pause
Автор: wader
Дата сообщения: 15.09.2006 23:33
1user1
что именно ты хочешь сделать? напиши подробнее.

P.S.
прочитай описание ключей запуска

Код: ipconfig /?
Автор: ATZATZ
Дата сообщения: 16.09.2006 10:03
Yuk
Если тебе нужет только IP, то лучше так :
@echo off
For /f "tokens=2 delims=:" %%i in ('ipconfig ^| findstr "IP-"') do echo %%i
pause
Автор: YDOG
Дата сообщения: 22.09.2006 11:26
А можно ли средствами командных файлов выяснить по IP адресу имя хоста или сайта.
Пытаюсь обработать лог пришедший от провайдера. И не соображу как это сделать..
Уважаемые помогите..
Автор: Accessor
Дата сообщения: 22.09.2006 12:15
YDOG
nslookup xxx.xxx.xxx.xxx
Автор: YDOG
Дата сообщения: 22.09.2006 13:49
Это очень долго...
команда работает по 3-4 секунды...Сколько же я буду времени проверять?
А другого решения не завалялось?
Автор: KapralBel
Дата сообщения: 22.09.2006 13:58
YDOG
Поясни зачем проверять время
И вообще в чем задача - тогда будет более другое решение
Автор: YDOG
Дата сообщения: 22.09.2006 14:58
Время проверять не надо.. Сорри если не понятно объяснил..
Просто пришел лог от провайдера вида
Source IP - Dest IP - кол-во посылок- размер.
Мне нужно установить по этому логу какие сайты и ресурсы посещались..
Но лог очень большой, поэтому если на каждый АйПи тратить по 3-4 секунды, то это займет очень много времени, а мне в понедельник отчитываться..
Поэтому и ищу решение.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879

Предыдущая тема: Problemi s zagruzkoy XP!


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