Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 7

Модерирует : KLASS, IFkO

vu1tur (25-01-2010 12:41): лимит страниц, продолжение: http://forum.ru-board.com/topic.cgi?forum=62&topic=19668  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117

   

vu1tur



Moderator-Saaber
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Задачи на bat-файлах 7
(часть 1, часть 2, часть 3, часть 4, часть 5, часть 6)
Вопросы, задачи и их решения по работе с командными файлами, а также сопутствующие ссылки.

 
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!
 
Также для удаления концевых пробелов пользуйтесь скриптом от Nagual, или VBS-Скрипт-Модулем от ViSiToR.
 
Для перекодирования кирилицы 866<<>>1251 пользуйтесь онлайн сервисом Перекодировщик кириллицы

 
Дополняем шапку: добавляем готовые решения, полезные ссылки.
 
Примечание: Большие куски кода заключайте в тэг [more]  
 
Смежные темы:
В помощь системному администратору » Автоматизация администрирования
Программы » Командная строка, батники\сценарии
 
Полезные ссылки
 
Полезные утилиты
 
Готовые решения и частые вопросы:
  • Встроенный справочник по командам
  • Создание помощи по всем командам консоли 2000 и XP
  • Делаем паузу в командном файле стандартными средствами Windows
  • Альтернативные решения »
  • Работа с текстом, датой, и файлами »
  • Администрирование, автоматизация и сеть »
  • Работа с переменными и параметрами ком. строки »
     
    Описания работы команд и символов участниками темы:
    · setlocal enabledelayedexpansion и переменные окружения
    · символы & и && в командной строке
    · Переменная %0

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:37 26-05-2009 | Исправлено: TechnicsKuzya, 13:53 27-12-2009
    aisboard

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

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

    Всего записей: 48 | Зарегистр. 18-02-2004 | Отправлено: 17:27 01-09-2009
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    aisboard
     
    1. netsh diag show os
    2. wmic os get caption, version
    3. systeminfo | findstr "^OS ОС:"
     
    OS ОС - соотвественно OS - латиница OC - кириллица.  

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 18:18 01-09-2009 | Исправлено: 01MDM, 18:35 01-09-2009
    slay1212

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    anachrom

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

      Во время работы 1с наберут net use  и спалят твою незамапленную шару
     Как спрятать пароль батника смотри в этом посте

    Всего записей: 336 | Зарегистр. 28-05-2008 | Отправлено: 18:25 01-09-2009 | Исправлено: slay1212, 08:52 02-09-2009
    aisboard

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
     
    1. В XP/2003 - работает, в Vista/Win7/ 2008 - нет (нет команды diag внутри netsh)
     
    2,3 - Работают везде, правда тормозят ввиду того что много данных читают, но как вариант рассмотрю.
     
    Спасибо за советы!

    Всего записей: 48 | Зарегистр. 18-02-2004 | Отправлено: 22:24 01-09-2009
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    aisboard

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

    Кому помешал этот контекст?
     
    wmic и systeminfo тоже не во всех версиях. В XP Home точно нет.

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 22:41 01-09-2009
    anachrom

    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    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 - отключение пути.
    А вот с условиями у меня туго.
    Помогите пожалуйста.

    Всего записей: 179 | Зарегистр. 18-11-2008 | Отправлено: 09:32 02-09-2009 | Исправлено: anachrom, 09:32 02-09-2009
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

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

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

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 11:49 02-09-2009 | Исправлено: wolf0425, 12:04 02-09-2009
    slay1212

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    anachrom
     Програмки нормально делают запуск от имени др.пользователя и не палят пароль.
    А если  /savecred юзать то там такой косяк - от имени этого пользователя потом( после первого запуска с паролем) можно БЕЗ пароля запустить любую прогу что нах никому не нужно. Базы можно с пом VSS или подобного стащить. Вообще какая задача стоит? Если вообще все спрятать - терминал тебе в помощь вещь самая надежная. А все эти батники по нормальному все равно не закроют 1с. По net use узнают сетевой путь и пускают вторую копию 1с , например или копируют базу с сетевого диска.  
      Повторюсь - терминал спасет отца русской демократии
       

    Всего записей: 336 | Зарегистр. 28-05-2008 | Отправлено: 11:52 02-09-2009 | Исправлено: slay1212, 11:59 02-09-2009
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    есть такой цикл( далеко не факт, что правильный!!! )

    Код:
     
    FOR /F "tokens=1-15 delims= " %%i IN ("%list%") DO echo %%i
     

    в %list% находятся цмфры через пробел( например так: "1 3 4 12"), сколько точно не известно, но не больше 15. требуется вывести их все поочереди на экран... 1-ое число выводится дальше программа вылетает бесследно!
    отсюда вопрос как это реализовать? и правелен ли цикл впринципе на предмет tokens и delims...

    Всего записей: 6562 | Зарегистр. 28-08-2008 | Отправлено: 12:50 02-09-2009 | Исправлено: Alukardd, 12:51 02-09-2009
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

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

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 13:11 02-09-2009 | Исправлено: wolf0425, 13:14 02-09-2009
    Alukardd



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

    Всего записей: 6562 | Зарегистр. 28-08-2008 | Отправлено: 13:34 02-09-2009
    anachrom

    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    wolf0425

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

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

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

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

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

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

    Всего записей: 179 | Зарегистр. 18-11-2008 | Отправлено: 14:27 02-09-2009
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

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

     
    немного заглупил... просто указал что использовать надо временную директорию, а запрос вёл к текущему каталогу...

    Всего записей: 6562 | Зарегистр. 28-08-2008 | Отправлено: 14:33 02-09-2009
    slay1212

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

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

    anachrom
     Я что-то не понял про какие условия ты говоришь. Ты сначала спросил как не вводить пароль на запуск 1 с в батнике тебе ответили. Как зашифровать батник и пароль другуго юзера чтобы его не вытащили я тебе ссылку дал. Или ты хочешь проверить несколько копий 1с и позакрывать все диски? Что каждую 1с ную базу отдельным батником будешь пускать? Да тебя бухи сожрут с потрохами.
       У меня свой вопрос. Мой батник запускается при логоне юзера,  считает его время работы, пишет в файл. Сейчас это sfx rar архив распаковывающийся в определенную папку, заданную параметром. Запускается из-под другого ( не текущего юзера). Пишет время работы юзера в файл(имя юзера + дата создания).
      1. Куда лучше спрятать эту папку, чтоб найти труднее было, желательно с использованием переменных. Файлы с временем должны быть доступны после перезагрузки.
       2. Как в батнике прописать логон скрипт в групповой политике ( или в реестре). Сейчас все это ручками делается что неудобно
       3. Удобно ли будет писать значения не в файл, а в реестр например

    Всего записей: 336 | Зарегистр. 28-05-2008 | Отправлено: 15:55 02-09-2009
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    и все таки опять какой-то непонятый трабл
    есть домен 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
    ...
     

    вообщем как скопировать каракули которые он мне выдает я не знаю, так что попытаюсь объяснить на словах...
    ну что выдаетс сообщение "PsExec couldn't  start start.bat on 192.168.xxx.xxx" это понятно, а дальше идет строчка каракулей причом 2 разные я видел... я кажется понял, что если в конце строчки сообщения есть значок корня, то значит пасс неверный, а если нет то ваще хз...
    и соответcтвенно вопрос как правильно писать:
    -u mydomen\Alukardd
    -u Alukardd@mydomen.ru
    -u Администратор REM вариант локального админа тоже устроит, но лучше доменного...

    Всего записей: 6562 | Зарегистр. 28-08-2008 | Отправлено: 16:49 02-09-2009 | Исправлено: Alukardd, 17:10 02-09-2009
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Alukardd
    попробуй через запуск cmd:

    Код:
     
    psexec \\192.168.xxx.xxx -u Alukardd -с cmd /c \\192.168.0.1\scripts\start.bat
     

     
     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 17:07 02-09-2009
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    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

    НО!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    я вижу следующее

    Код:
    Password:
     
     
    _

    в конце просто мигающий курсор... но это не все прелести вашего совета... от него виснет удаленная машина!!!

    Всего записей: 6562 | Зарегистр. 28-08-2008 | Отправлено: 17:31 02-09-2009
    slay1212

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ну можешь просто пароль указать

    Цитата:
    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 должны быть в группе лок админов на каждом компе и скрипт от имени простого юзера на той машинке может не проканать

    Всего записей: 336 | Зарегистр. 28-05-2008 | Отправлено: 17:55 02-09-2009 | Исправлено: slay1212, 18:00 02-09-2009
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Alukardd
    У меня работает...

    Код:
     
    psexec \\192.168.0.1 cmd /k "\Documents and Settings\mdm\bin\myip.cmd"
     

     
    Подумал, что может оно ссылается на текущее окружение, т.к расположение каталогов и файлов почти одинаковое, попробовал:

    Код:
     
    psexec \\192.168.0.1 cmd /k "\Documents and Settings\mdm\bin\eject.cmd"
     

     
    CD-юшник выдвинулся на другом компе..
     
     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 18:04 02-09-2009 | Исправлено: 01MDM, 18:13 02-09-2009
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

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

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

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

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

    Всего записей: 6562 | Зарегистр. 28-08-2008 | Отправлено: 18:04 02-09-2009
       

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 7
    vu1tur (25-01-2010 12:41): лимит страниц, продолжение: http://forum.ru-board.com/topic.cgi?forum=62&topic=19668


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru