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

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

Автор: us0r
Дата сообщения: 22.06.2010 16:20
ComradG
Нет, ну что ты... Я тут увидел хэлп и мну осенило- а почему бы... А вот попробовать- не судьба...
res2001
STDERR в STDOUT... Хм... Или я чего- то не понял, или cmd.exe у меня глючит, но насколько я понял я должен был бы увидеть ещё что- то, кроме вывода: "Недопустимая команда бла-бла-бла"... или я жду чего- то невозможного?
Автор: ComradG
Дата сообщения: 22.06.2010 16:20
res2001
Жду.

Добавлено:
us0r

Цитата:
STDERR в STDOUT
просто наверное перемудрил чего , можешь с этого места поподробнее.
Автор: SPY
Дата сообщения: 22.06.2010 16:25
цитирую свой вопрос отсюда
http://forum.ru-board.com/topic.cgi?forum=35&topic=44569&start=4040#6


Цитата:
а флэшке есть 1С v7 + есть база к ней там же..
какбе создать такой хитрый исполняемый файл, чтобы он запускал 1С-ку с нужной базой с этой флешки на любом компе (т.е. не привязываться к букве диска)?


есть варианты?
Автор: us0r
Дата сообщения: 22.06.2010 16:27
ComradG
Мне что- то подсказывает, что в STDERR при любом раскладе что- то должно писаться.
А если ето что- то должно писаться в STDERR то и перенаправлено (дублировано?) число должно быть, по логике команды в STDOUT, а следовательно и выведено на экран... но этого нет(((
Автор: res2001
Дата сообщения: 22.06.2010 16:28
us0r
все правильно ты увидел.
команда dir ///, заведомо ошибочная, поэтому все что она выводит идет в STDERR.
можешь проверить так:
dir /// 1>dirok.txt 2>direrr.txt

и посмотри файлы dirok.txt и direrr.txt


Добавлено:
us0r
позапускай dir с разными параметрами и с таким перенаправлением (1>dirok.txt 2>direrr.txt )
и посмотри что в разных случаях получается в файлах.

Добавлено:
ComradG
смотри
Автор: us0r
Дата сообщения: 22.06.2010 16:35
SPY
Доступные ключи запуска 1С 7.7 есть?
Автор: ComradG
Дата сообщения: 22.06.2010 16:40
res2001
Посмотрел, и если честно, то я давно озадачен временными штампами. У меня тут возникла идея с генерацией батником vbs-ки, которая бы выполнив всю грязную работу удалялась бы сама, но wscript я не очень люблю трогать без крайней нужды. Так что пойду еще раз ковырну %~tI и ntvdm. Если чего будет толкового, дам знать.
Автор: res2001
Дата сообщения: 22.06.2010 16:47
ComradG
ок
Автор: SPY
Дата сообщения: 22.06.2010 17:04
us0r
1cv7.exe MODE [ /M | /D(Path) | /U(Path) | /N(Name) | /P(Pass) | /@(filename)],
где MODE - режим запуска, может принимать только одно из трех значений :
config - режим конфигуратора;
debug - режим отладчика;
enterprise - рабочий режим.
monitor - монитор пользователей.
следующие ключи не обязательны:
/M - запуск программы в монопольном режиме;
/D - автоматический запуск базы, находящейся в указанном каталоге. Если эта ИБ еще не зарегистрирована, то будет показан диалог добавления ИБ;
/U - рабочий каталог пользователя (каталог из списка пользователей игнорируется);
/N - имя пользователя;
/P - пароль пользователя;
/@ - запуск выполнения указанного командного файла.


Добавлено:
us0r
нашел один пример
http://forum.ru-board.com/topic.cgi?forum=5&topic=6920&start=820#8

%1:\1С\1cv7_p~1.exe ENTERPRISE /D%1:\1С\BASA\

но минус в том, что при запуске выпрыгивает диалог добавления базы, вот как бы этот шаг обойти, нужно чтоб пользователь не указывал ничего, а база сразу запускалась..
Автор: us0r
Дата сообщения: 22.06.2010 17:49
%1 разве заменяет букву диска?
В принципе что- то такое:
1c.bat

Код: @echo off
cls
REM Если есть желание указывать букву флешки ручками
setlocal
set %disk%=%~d0
start %disk%\1C\1cv7_p~1.exe MODE enterprise /D%disk%\1C\BASA\
endlocal
Автор: king_stiven
Дата сообщения: 22.06.2010 17:53
SPY

Цитата:
какбе создать такой хитрый исполняемый файл, чтобы он запускал 1С-ку с нужной базой с этой флешки на любом компе (т.е. не привязываться к букве диска)?

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

Цитата:
/D - автоматический запуск базы, находящейся в указанном каталоге. Если эта ИБ еще не зарегистрирована, то будет показан диалог добавления ИБ;

Ну и как происходит этот диалог добавления?
Автор: us0r
Дата сообщения: 22.06.2010 18:06
Что- то у меня параметры 1С 7.7 не пережёвывает вообще... Ошибка синтаксиса комманды... Хрень какая- то...

Код: [autorun]
//Пример с автораном
action=Launch 1C v7.7 Portable
icon=1C\1cv7_p~1,1
open=1C\1cv7_p~1.exe MODE enterprise /D..\1C\BASA\
Автор: res2001
Дата сообщения: 22.06.2010 20:01
SPY
А где 1С хранит настройки баз?
Автор: wolf0425
Дата сообщения: 22.06.2010 20:55

Цитата:
А где 1С хранит настройки баз?
77 - в регистри
Автор: SPY
Дата сообщения: 22.06.2010 20:57
us0r

Код:
@echo off
cls
REM поправленный вариант
setlocal
set %disk%=%~d0
start %disk%\1Cv77\BIN\1cv7s.exe enterprise /D%disk%\1Cv77\Bases\имя_базы\SSTDB\
endlocal
Автор: res2001
Дата сообщения: 23.06.2010 07:52
SPY
Чтоб 1С не спрашивала регистрацию базы при запуске из батника с параметрами, надо предварительно в этом же батнике установить нужные настройки в реестре, а потом уже запускать 1С.
У меня 1С нет, не на чем эксперименты ставить. Поэтому только идея.
Автор: mflash123
Дата сообщения: 23.06.2010 09:12

Код: sc stop sharedaccess
msg * %errorlevel%
Автор: res2001
Дата сообщения: 23.06.2010 09:23
mflash123
ну тут вопросы к sc.
К тому же сама sc ничего не запускает, а дает команду виндовому менеджеру служб (или как там он называется), запустить/остановить службу. Так что с точки зрения sc - все нормально, просто ей вернул такой ответ менеджер служб.
Автор: wolf0425
Дата сообщения: 23.06.2010 10:04

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

а вообще такое сообщение - результат того, что скомандовали остановить уже остановленный сервис. Если такую ошибку действительно надо отлавливать - фильтруй вывод через find

Автор: Nomasster
Дата сообщения: 23.06.2010 10:46
Всем привет!
Нужна помощь по созданию bat-файла, при запуске которого удалялось бы следующее:
Содержимое HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices
Любые Vid-ы в ветке HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\Vid_ХХХХХХ_ХХХХ
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR\Disk&Ven_ХХХХ
HKEY_LOCAL_MACHINE\SYSTEM\ControlSetХХХ\Control\DeviceClasses\{53f56307-b6bf-11d0-94f2-00a0c91efb8b
HKEY_LOCAL_MACHINE\SYSTEM\ControlSetХХХ\Enum\USB\Vid_ХХХХХХ_ХХХХ
HKEY_LOCAL_MACHINE\SYSTEM\ControlSetХХХ\Enum\USBSTOR\ Disk&Ven_ХХХХ
с любыми числовыми значениями вместо Х
К этим веткам доступ на удаление имеет только пользователь system, поэтому может быть как-нибудь можно воткнуть в bat-файл команду at xx.yy /interactive ?
В итоге должно получиться удаление информации о всех ранее подключённых к системе usb-устройствах.
Возможно ли такое написать и чтобы еще и работало?)))
Автор: wolf0425
Дата сообщения: 23.06.2010 11:04

Цитата:
К этим веткам доступ на удаление имеет только пользователь system, поэтому может быть как-нибудь можно воткнуть в bat-файл команду at xx.yy /interactive ?
нафига тебе интерактив? создать список на удаление, посчитать время, после чего запихнуть в at REGEDIT /S pathname и подождать минуту.


Цитата:
К этим веткам доступ на удаление имеет только пользователь system,
кстати, в какой системе такое ограничение? у меня и админам там всё разрешено, незачем с at извращаться

Автор: res2001
Дата сообщения: 23.06.2010 11:09
wolf0425

Цитата:
менеджер наверно же вернул код ошибки - ожидаемо было что sc его дальше транслирует.

Было бы логично ожидать такого поведения, но, видимо, у мелкософта другое мнение

Nomasster
команда reg тебе в помощь.

Цитата:
К этим веткам доступ на удаление имеет только пользователь system

В 2000/XP и в Win2003 администраторы имеют доступ ко всем веткам реестра.
За висту, семерку и 2008 не скажу - нет под рукой, но думаю, что там аналогично.
Автор: us0r
Дата сообщения: 23.06.2010 11:59
res2001
Vista/7 - это такая зверушка... Вобщем не всё так очевидно...
wolf0425

Цитата:
менеджер наверно же вернул код ошибки - ожидаемо было что sc его дальше транслирует.

Мне кажется что манагер служб вернул ошибку, о чём sc радостно написал "FAILED %errorlevel%" (SC прочитал STDERR и вывел на терминал?), после чего как конец уже своей работы sc вернул в STDERR радостный 0- мол сам SC отработал без проблем. Поэтому или вывод STDERR манагера попытаться как- то выдернуть, или findstr юзать...
Автор: wolf0425
Дата сообщения: 23.06.2010 12:19

Цитата:
после чего как конец уже своей работы sc вернул в STDERR радостный 0- мол сам SC отработал без проблем.
sc по жизни ненулевой код не возвращает - даже при ошибочных коммандах.


Добавлено:

Цитата:
Vista/7 - это такая зверушка...
да, в семерке на HKLM\SYSTEM\ControlSet001 - права уже только у системы, админам же предлагается извращаться.

Интересно, а такое удаление - насколько массово/часто планируется делать, надеюсь не один раз?
Автор: us0r
Дата сообщения: 23.06.2010 12:35
wolf0425
Эмм... Я вобщем о том же... sc всегда отрабатывает нормально- отправил комманду манагеру сервисов, отловил и вывел на терминал его ответы и всё... Вся работа... Тут можно как аналог net start посмотреть- может он чего больше даст...
Автор: gryu
Дата сообщения: 23.06.2010 12:53
Коллеги, кто занимался скрещиванием кодов vbs и cmd?
Я хотел реализовать задачу вызова окна выбора файла и последующей передачи его в переменную при помощи кода vbs.
Кто нить это делал?
Автор: us0r
Дата сообщения: 23.06.2010 13:17
gryu
Ну... Если vbs сможет записать системную переменную или файл создать с нужной инфой- то из bat прочитать и то и другое- уже не проблема)
Автор: res2001
Дата сообщения: 23.06.2010 13:19
gryu
Пытался в свое время так делать. Переменные можно установить в vbs, но в тот же батник они не передадутся.
В итоге делал через промежуточный файл. Как вариант через операцию "|".
Автор: us0r
Дата сообщения: 23.06.2010 13:22
SPY
Экспортируй ключи эски относящиеся к настройкам (пути к базе, имена баз и т.д.). Залей куда- нить и скинь ссылку- посмотрю...
Автор: wolf0425
Дата сообщения: 23.06.2010 13:32

Цитата:
sc всегда отрабатывает нормально- отправил комманду манагеру сервисов,

не, команда же может быть и неправильной - это sc отлавливает сам. но и в таком случае выдает нулевой код и просто печатает инструкцию, что непривычно.

gryu
Цитата:
Я хотел реализовать задачу вызова окна выбора файла и последующей передачи его в переменную при помощи кода vbs.
напрямую в переменную не получится, но можно поизвращаться с stdout.
с гуем я не скрещивал, мне просто логарифм нужен был:
Код: for /f %%a in ('cscript //nologo //e:jscript "%~f0" %Plength% %slength% ') do set complex=%%a

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132

Предыдущая тема: XP не видит второй раздел на съемном USB-HDD


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