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

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

Автор: mosthost
Дата сообщения: 31.08.2009 12:21
через unix-dos (unxtools):
cat z|grep "string" && goto :ok || goto :notok
goto :eof
:ok
echo "OK"
:notok
cat x >>z

можно через errorlevel
Автор: Ta78Rus
Дата сообщения: 31.08.2009 12:22
mosthost
Спс попробую. А вариант через еррорлевел реально озвучить?
Автор: wolf0425
Дата сообщения: 31.08.2009 23:57
anachrom

Цитата:
Если все ключи указать в батнике, в самом начале которого поставить @echo off, и пережать батник в exe (программ для этого написано достаточно), то пользователь и не узнает откуда что берется.

Цитата:
Спасибо, как всегда все гениально и просто. Теперь не украдут.
ага, теперь перед тем как украсть придется бедному вору найти и запустить pv.exe или какой-нибудь другой немикрософтовский тасклист, показывающий аргументы - типа из 5 строк на vbs...
ужас какая защита. Это если в 1С совсем нельзя выяснить с какого пути база загружена...
Автор: Taciturn
Дата сообщения: 01.09.2009 08:56
Ta78Rus

Код: type file1.txt|find "something"
if not %errorlevel%==0 type file2.txt>>file1.txt
Автор: Ta78Rus
Дата сообщения: 01.09.2009 09:51
mosthost
Taciturn
Премного благодарен, оба варианта нашли применение.
Автор: aisboard
Дата сообщения: 01.09.2009 16:27

Так как никто не ответил, а очень нужно, позволю себе повторится
Помогите, как узнать в батнике тип ОС (сервер или раб.станция)?
Переменная OS и там и там дает Windows_NT, команда VER дает версию, но чтоб отличить раб. станцию (XP,Vista,Win7) от сервера (2003,2008) придется перебирать все варианты написания версий?
Есть более простой способ, не использующий сторонние утилиты?
Автор: 01MDM
Дата сообщения: 01.09.2009 17:18
aisboard

1. netsh diag show os
2. wmic os get caption, version
3. systeminfo | findstr "^OS ОС:"

OS ОС - соотвественно OS - латиница OC - кириллица.
Автор: slay1212
Дата сообщения: 01.09.2009 17:25
anachrom

Цитата:
Теперь не украдут

Во время работы 1с наберут net use и спалят твою незамапленную шару
Как спрятать пароль батника смотри в этом посте
Автор: aisboard
Дата сообщения: 01.09.2009 21:24
01MDM

1. В XP/2003 - работает, в Vista/Win7/ 2008 - нет (нет команды diag внутри netsh)

2,3 - Работают везде, правда тормозят ввиду того что много данных читают, но как вариант рассмотрю.

Спасибо за советы!
Автор: 01MDM
Дата сообщения: 01.09.2009 21:41
aisboard

Цитата:
в Vista/Win7/ 2008 - нет (нет команды diag внутри netsh)

Кому помешал этот контекст?

wmic и systeminfo тоже не во всех версиях. В XP Home точно нет.
Автор: anachrom
Дата сообщения: 02.09.2009 08:32
slay1212
Спасибо. Програмки интересные, мне такие нужны. Но как это закроет сетевой путь?
Мой то принцеп прост.
При старте системы запускается exe файл, который был сначало bat'ником и открывает путь (соответсвенно пароль и путь никто не палит, ели специально неискать). Далее опять же exe (bat) который запускает 1с с указаным путем до базы (опять же путь не палится). И никаких сетевых дисков и никаких проблем. А по поводу стащить базы, если 1с работает с базой, то скопировать неполучится (выдаст ошибку блокирования данных).
Как вариант можно сделать по другому (все в одном) и защита будет выше.
------------------------------
При запуске bat'ника сначала стартует проверка на подключение определенного пути. Если пути ненайдено то запускается "net use ..." и подключается путь, далее стартует 1с с базой по определенному пути, если путь уже запущен, то просто стартует 1с. При закрытии проверяется, запущенн данный файл защиты один или их несколько, если несколько то просто закрыть 1с, если один то закрыть и 1с и сетевой путь.
Что имеем:
net use "\\192.168.0.1\1c" /user:login password - подключение сетевого пути
"c:\program files\1cv81\bin\1cv8.exe" enterprise /f "\\192.168.0.1\1c" - запуск 1с с указаным путем
net use "\\192.168.0.1\1c" /delete - отключение пути.
А вот с условиями у меня туго.
Помогите пожалуйста.
Автор: wolf0425
Дата сообщения: 02.09.2009 10:49

Цитата:
Спасибо. Програмки интересные, мне такие нужны. Но как это закроет сетевой путь
просто - 1С запускать не под текущим пользователем, а под пользователем имеющим права на чтение/запись базы.
В условиях отсутствия домена наверно лучше создать локальных пользователей с именем 1С и одинаковым паролем на сервере и на рабочих компах - обойдешься без ввода из батника пароля на шару.
Хотя можно просто сделать батник нечитаемым под текущим пользователем, и подключаться как выше: подключать он будет только того пользователя из под которого работает, у юзера возможности запустить другой такой процесс и пошариться по базе - нету.


Цитата:
А по поводу стащить базы, если 1с работает с базой, то скопировать неполучится (выдаст ошибку блокирования данных).
а ты проверь - выдаст ошибку блокирования или нет
В момент когда 1С запущена, база открыта, но никаких операций не проводится.

как 1С с двух разных компов с такой базой работают одновременно, по-твоему?
Автор: slay1212
Дата сообщения: 02.09.2009 10:52
anachrom
Програмки нормально делают запуск от имени др.пользователя и не палят пароль.
А если /savecred юзать то там такой косяк - от имени этого пользователя потом( после первого запуска с паролем) можно БЕЗ пароля запустить любую прогу что нах никому не нужно. Базы можно с пом VSS или подобного стащить. Вообще какая задача стоит? Если вообще все спрятать - терминал тебе в помощь вещь самая надежная. А все эти батники по нормальному все равно не закроют 1с. По net use узнают сетевой путь и пускают вторую копию 1с , например или копируют базу с сетевого диска.
Повторюсь - терминал спасет отца русской демократии
Автор: Alukardd
Дата сообщения: 02.09.2009 11:50
есть такой цикл( далеко не факт, что правильный!!! )

Код:
FOR /F "tokens=1-15 delims= " %%i IN ("%list%") DO echo %%i
Автор: wolf0425
Дата сообщения: 02.09.2009 12:11

Цитата:
в %list% находятся цмфры через пробел( например так: "1 3 4 12"), сколько точно не известно, но не больше 15. требуется вывести их все поочереди на экран...
Вывести поочередно - это по числу на строку?
если без ограничения на 15 чисел и прочей дуракоустойчивости - то так:
for %%a in ( %list% ) do echo %%a

а FOR /F рассматривает переменную как одну строку, и проходит ее за один раз, в соответствии с tokens и delims присваивая ее позиции переменным %%i %%j %%k ... и т.д.
Автор: Alukardd
Дата сообщения: 02.09.2009 12:34
wolf0425
Спасибо работает!

Добавлено:
я тут конечно сам довал рекомендации по поводу bat to exe converter, но теперь и у меня вопросы
суть такова, что батник работает с утлитой ps и с txt файлом... когда я включаю их в Include( в exe вместе с bat ), то я считал что они будут доступны как будто лежат в одном каталоге с батником, но простое обращение 1.txt не к чему не приводит( подскажите как решить проблему.
Автор: anachrom
Дата сообщения: 02.09.2009 13:27
wolf0425

Цитата:
а ты проверь - выдаст ошибку блокирования или нет
В момент когда 1С запущена, база открыта, но никаких операций не проводится.

как 1С с двух разных компов с такой базой работают одновременно, по-твоему?

Я исхожу из того соображения, что ночью из-за "хорошей памяти" "умных" пользователей мои bakup'ы отказываются копировать базы которые запущенны у этих ...
slay1212

Цитата:
По net use узнают сетевой путь и пускают вторую копию 1с , например или копируют базу с сетевого диска.

Я еще раз говорю, всегда есть возможность стащить все что угодно

Цитата:
Повторюсь - терминал спасет отца русской демократии

Неспасет. Запуск в терменале и выгрузка информационной базы (элементарно Ватсон).
Терминал требователен к железу, а в одной базе работают мин 10 человек (SQL-дорого сказали).
Так как насчет помощи с условиями?
Автор: Alukardd
Дата сообщения: 02.09.2009 13:33

Цитата:
я тут конечно сам довал рекомендации по поводу bat to exe converter, но теперь и у меня вопросы
суть такова, что батник работает с утлитой ps и с txt файлом... когда я включаю их в Include( в exe вместе с bat ), то я считал что они будут доступны как будто лежат в одном каталоге с батником, но простое обращение 1.txt не к чему не приводит( подскажите как решить проблему.


немного заглупил... просто указал что использовать надо временную директорию, а запрос вёл к текущему каталогу...
Автор: slay1212
Дата сообщения: 02.09.2009 14:55

Цитата:
А вот с условиями у меня туго.

anachrom
Я что-то не понял про какие условия ты говоришь. Ты сначала спросил как не вводить пароль на запуск 1 с в батнике тебе ответили. Как зашифровать батник и пароль другуго юзера чтобы его не вытащили я тебе ссылку дал. Или ты хочешь проверить несколько копий 1с и позакрывать все диски? Что каждую 1с ную базу отдельным батником будешь пускать? Да тебя бухи сожрут с потрохами.
У меня свой вопрос. Мой батник запускается при логоне юзера, считает его время работы, пишет в файл. Сейчас это sfx rar архив распаковывающийся в определенную папку, заданную параметром. Запускается из-под другого ( не текущего юзера). Пишет время работы юзера в файл(имя юзера + дата создания).
1. Куда лучше спрятать эту папку, чтоб найти труднее было, желательно с использованием переменных. Файлы с временем должны быть доступны после перезагрузки.
2. Как в батнике прописать логон скрипт в групповой политике ( или в реестре). Сейчас все это ручками делается что неудобно
3. Удобно ли будет писать значения не в файл, а в реестр например
Автор: Alukardd
Дата сообщения: 02.09.2009 15:49
и все таки опять какой-то непонятый трабл
есть домен mydomen.ru все профили сетвые, ну вообщем почти все как надо. машины XP Prof SP2
требуется выполнить файл на удаленной машине( грубо говоря пользователь пользователю). Hаписал батник для psexec
сам он конечно более объемный но суть вот она...
надо выполнить батник на удаленной машине( батник если есть возможность брать как в коменте )
то что выполняю я и start.bat это 2 разных батника!

Код:
...
psexec \\192.168.xxx.xxx -u Alukardd -c start.bat
REM psexec \\192.168.xxx.xxx -u Alukardd \\192.168.0.1\scripts\start.bat
...
Автор: 01MDM
Дата сообщения: 02.09.2009 16:07
Alukardd
попробуй через запуск cmd:

Код:
psexec \\192.168.xxx.xxx -u Alukardd -с cmd /c \\192.168.0.1\scripts\start.bat
Автор: Alukardd
Дата сообщения: 02.09.2009 16:31
01MDM
вы уверены в коректности ввода логина? это все-таки сетвой профиль и компьютер его может просо не знать!
вообщем так не пашет совсем... (т.е. каракули с корнем на конце)

Цитата:
psexec \\192.168.xxx.xxx -u Alukardd -с cmd /c \\192.168.0.1\scripts\start.bat

а вот так приконектилось...

Код: psexec \\192.168.xxx.xxx -u MYDOMAIN\Alukardd -с cmd /c \\192.168.0.1\scripts\start.bat
Автор: slay1212
Дата сообщения: 02.09.2009 16:55
Ну можешь просто пароль указать

Цитата:
psexec \\192.168.xxx.xxx -u MYDOMAIN\Alukardd -p parol -с cmd /c \\192.168.0.1\scripts\start.bat

А если для нескольких компов - от имени system.
Я для сбора инфы по домену пускаю с системной записью
psexec.exe \\ivanov -s <что надо> для компа
или
psexec.exe \\* -s <что надо> для компов домена
Ест- но domain admins должны быть в группе лок админов на каждом компе и скрипт от имени простого юзера на той машинке может не проканать
Автор: 01MDM
Дата сообщения: 02.09.2009 17:04
Alukardd
У меня работает...

Код:
psexec \\192.168.0.1 cmd /k "\Documents and Settings\mdm\bin\myip.cmd"
Автор: Alukardd
Дата сообщения: 02.09.2009 17:04

Цитата:
Ну можешь просто пароль указать

какая разница? я и так и так делал... эффект 1!!!
с ключом -s тоже пробывал ничего не меняется...
все одна лажа!!! народ сообразите плз, оч надо для управления!

Добавлено:

Цитата:
psexec \\192.168.0.1 cmd /k "\Documents and Settings\mdm\bin\eject.cmd"

запустил - только вместо mdm написал Администратор, результат все прежний не то что CD не выдвинулся - все тоже зависание!
приду домой попробую конечно, но если все сработает дома, то я вообще в ступор попаду...
Автор: 01MDM
Дата сообщения: 02.09.2009 17:54
Alukardd

Цитата:
запустил - только вместо mdm написал Администратор,

Понятно, что у твоего "Администратора" нет ни bin, ни тем более eject.cmd Это моё домашнее "хозяйство", просто на двух компьютерах все приблизительно одинаково, что касается моего профиля.
Автор: b2pip
Дата сообщения: 02.09.2009 23:33
Как при копировании заменять новые файлы старыми??
Автор: slay1212
Дата сообщения: 03.09.2009 11:44
Alukardd
Тут нет телепатов чтоб помочь. Ты где psexec пускаешь на какой тачке - из логона доменного перемещаемого профиля что-ли? Вручную когда даешь команду
\\192.168.0.1\scripts\start.bat
на той тачке все ок? В общем подробней если хочешь дождаться помощи
Автор: fd1136
Дата сообщения: 03.09.2009 11:48
b2pip

Цитата:
Как при копировании заменять новые файлы старыми??

Команда

Код:
copy <источник> <результат>
Автор: Baton34V
Дата сообщения: 03.09.2009 12:54
В winxp была такая команда для извлечения usb-флешки:
RunDll32.exe shell32.dll,Control_RunDLL hotplug.dll
в windows7 эта команда выдаёт:
Устройство "USB 2.0 USB Flash Drive USB Device" не является съемным и не может быть извлечено.
при этом в трее Безопасное извлечение устройств и дисков нормально работает и флешку отключает, т.е. используется другая команда.
С помощью какой команды win7 возможно отключить флешку?

зы: файловая система флешки ntfs, Политика удаления - быстрое удаление.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778

Предыдущая тема: во вкладке автозагрузка


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