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

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

Автор: ComradG
Дата сообщения: 05.09.2010 11:55
Да нет, одними макросами то тут вряд ли можно обойтись, да и муторно их торкать то. Тут лучше VBA использовать: создать экземпляр StreamReader, который бы передавал считанную информацию StreamWriter'у с установленной скоростью. Посредством батника такое едва ли удастся провернуть.
lorents
Если я тебя правильно понял, то попробуй в самом конце батника указать не exit /b, а просто exit. Батник отработает и консоль захлопнется.
Автор: bomzzz
Дата сообщения: 05.09.2010 11:57
lorents
это консольное окно CMD, чтоб его закрыть используй команду EXIT
Автор: lorents
Дата сообщения: 05.09.2010 12:04
а отчего это происходит?
т.е. там где я использую exit /b заменить на exit?
Автор: bomzzz
Дата сообщения: 05.09.2010 12:05
команду какую то используешь что попадешь в cmd

Добавлено:
может у твоего батника расширение не bat а cmd.
Автор: ComradG
Дата сообщения: 05.09.2010 12:07
lorents
exit /b - используется в сценариях для того, чтобы текущая сессия консоли не была захлопнута (если бат запускается из самой консоли, разумеется); тут параметр /b указывает CMD не иметь далее секс с CMD, а просто завершить сношения.
exit - завершает и сценарий и работу консоли.

Хм! а разве расширение батника играет принципиальную роль? Все равно и bat и cmd обрабатываются одним и тем же интерпретатором, так что не думаю, что причина в сакральности расширений.
Автор: bomzzz
Дата сообщения: 05.09.2010 12:15
точно нету разницы.
Автор: lorents
Дата сообщения: 05.09.2010 12:28
а можно через другую программу посылать в бат,во время работы, команду например пауза, или стоп?
Автор: wolf0425
Дата сообщения: 05.09.2010 12:29
afair единственная найденная разница между обработками .cmd и .bat - разная обработка команды set
конкретнее - в bat эта команда не влияет на errorlevel, в cmd - устанавливает errorlevel сама.

Код: @echo off
cd :: 2>nul
set ss=1
echo =%errorlevel%
Автор: lorents
Дата сообщения: 05.09.2010 12:43

Цитата:
внешнее управление работой батника проще делать через создание/удаление/проверку флажковых файлов.

а можно поподробнее?
Автор: bomzzz
Дата сообщения: 05.09.2010 12:57
видимо еметься ввиду что батник проверяет существование определнных файлов, и создавая их и удаляя можно регулировать его работу
Автор: NIKZZZZ
Дата сообщения: 05.09.2010 12:58
lorents

Цитата:
внешнее управление работой батника

Передачу данных можно осуществить через реестр.
Управляющий батник через REG ADD создает ключ реестра, управляемый через REG QUERY читает его и выполняет необходимые действия.
Аналогично, можно управлять батником, создавая временный файл.
Автор: us0r
Дата сообщения: 05.09.2010 14:19
RARом...
Автор: big_ptach
Дата сообщения: 05.09.2010 22:53
Недавно надоело искать Live USB под свои требования, если и встречались таковы раньше то все были с глюками. Собрал сборку только самых необходимых вещей, теперь для себя и друзей хочу сделать инсталятор этого все дела на флешку, суть и порядок действий:

1. Запускается автоматически HPUSBFW.EXE (было бы круто если бы прога сама запускалась и делала формат флешки)
2. Нужен запус grubinst_gui.exe
3. Можно всю вместимость флешки сжать в один архив - может быть EXE файл сделать. Ну и потом чтоб он развернулся на флешку.

максимум что мне удалось написать это:Ptach_live_USB.exe /s -oc:\soft -r -y
только мне ведь хочется чтоб это было не c:\soft, а флеш драйв

Помгите пожалуйста умно оформить эти 8 строк которые составят мой банчек.(((
Автор: zhuchella
Дата сообщения: 06.09.2010 00:22
ToALL
Подскажите, есть ли возможность с помощью бат-файлов узнать мак-адрес сетевой карты ?
Автор: bomzzz
Дата сообщения: 06.09.2010 01:06
zhuchella
через wmi попробуй

Добавлено:
ECHO OFF
COLOR 9F
CLS
getmac
pause
Автор: BVV63
Дата сообщения: 06.09.2010 04:42
zhuchella

Цитата:
Подскажите, есть ли возможность с помощью бат-файлов узнать мак-адрес сетевой карты ?

Она одна?

Код: @Echo Off
SetLocal EnableDelayedExpansion
For /F "UseBackQ" %%0 In (`WMIC NIC Get MACAddress`) Do If "%%0" Gtr "" Set MAC=%%0
Echo %MAC%
Автор: Mark_Titov
Дата сообщения: 06.09.2010 06:45
Доброго дня всем...
Подскажите плиз, если у меня 10-15 батников одновременно запушенны на выполнение различных команд и при этом пользуются одним файлом sleep.exe - могут ли быть в связи с этим сбои и ошибки в выполнении кода...?
Автор: zhuchella
Дата сообщения: 06.09.2010 08:17
bomzzz
BVV63
Спасибо.

Цитата:
@Echo Off
SetLocal EnableDelayedExpansion
For /F "UseBackQ" %%0 In (`WMIC NIC Get MACAddress`) Do If "%%0" Gtr "" Set MAC=%%0
Echo %MAC%

Я так понял, что мак будет в переменной MAC ?

Я если нужно сменить мак, то как будет выглядеть цикл ?
Автор: bomzzz
Дата сообщения: 06.09.2010 08:54
врядли система позволяет мас адресс менять. прогу нада списиальнуу
Автор: BVV63
Дата сообщения: 06.09.2010 08:57
zhuchella

Цитата:
Я так понял, что мак будет в переменной MAC ?

Да.

Цитата:
Я если нужно сменить мак, то как будет выглядеть цикл ?

Увы, лично я не знаю методов WMI, которые позволяли бы менять MAC-адрес.
Автор: bomzzz
Дата сообщения: 06.09.2010 09:01
Mark_Titov
не может - зависать может
Автор: Mark_Titov
Дата сообщения: 06.09.2010 09:21

Цитата:
не может - зависать может

Другими словами не зависит от количества батников одновременно обращающихся к нему, да..?
Автор: NIKZZZZ
Дата сообщения: 06.09.2010 09:34
zhuchella

Цитата:
Подскажите, есть ли возможность с помощью бат-файлов узнать мак-адрес сетевой карты ?


Можно , с помощью IPCONFIG /ALL, примерно так


Код: For /F "usebackq tokens=1,2 delims=:" %%i In (`ipconfig /all ^|find "Физический"`) Do Set MAC=%%j
Автор: ComradG
Дата сообщения: 06.09.2010 10:25
Не совсем понятно зачем заморачиваться сменной mac'а через WMI. Лично я использую древний, проверенный временем хинт - через реестр. Причем при наличии прямых рук, можно написать и батник, но это уже другое дело.
Итак, открываем regedit, переходим в HKLM\SYSTEM\CurrentControlSet\Control\Class\4D36E972-E325-11CEBFC1-08002BE10318, где перебираем кусты с номерами 0000, 0001, 0002 и т.д. до тех пор, пока не обнаружим номер своей сетевухи. В кусте, в котором таится номер нашей сетевухи создаем парметр NetworkAddress типа REG_SZ, которому присваиваем значение mac'а, на который должкн замениться существующий. Все! Останется только перезагрузиться.
Если же потребуется восстановить прежний mac, то просто удаляем созданный параметр и перзагружаемся.
Автор: Free_Soft
Дата сообщения: 06.09.2010 10:27
ммм... проблемка. хочу присвоить атрибуты конечной папке, в которой лежит батник.

Код: set fldr=%~dp0
set cpath=%fldr:~0,-1%
attrib %cpath% +h +s /s
Автор: ComradG
Дата сообщения: 06.09.2010 10:50
Free_Soft
Используй pushd и popd, а между переходами присваивай нужные атрибуты папке.
Автор: Free_Soft
Дата сообщения: 06.09.2010 11:00
ComradG
Так?

Код: set fldr=%~dp0
set cpath=%fldr:~0,-1%
pushd "%cpath%" && (
attrib %cpath% +h +s /s
)
popd
Автор: ComradG
Дата сообщения: 06.09.2010 11:06
Free_Soft
Почитай внимательней hh ntcmds.chm про pushd и popd, так как я не совсем понимаю что есть в твоем коде такое %cpath% и для чего он вообще там нужен, как и %fldr%.
Автор: Free_Soft
Дата сообщения: 06.09.2010 11:14
ComradG

Код: %fldr%
Автор: wolf0425
Дата сообщения: 06.09.2010 11:44
Free_Soft
pushd "%~dp0" - работает ничуть не хуже pushd "%cpath%" , только незачем же
поменять аттрибут папки - это attrib %cpath% +h +s
а ключик /s - у тебя был совершенно лишний

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Windows 7 Starter


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