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

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

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

vu1tur (27-04-2007 11:55): продолжаем в теме «Задачи на bat-файлах 3»  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

vu1tur



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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 16:59 14-11-2006 | Исправлено: Elroir, 04:30 26-04-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Malganus
    1С какая?
    8.0
    7.7
    SQL или сетевая?

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 17:13 21-12-2006
    Malganus

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

    Цитата:
    1С какая?  
    8.0  
    7.7  

    8.0

    Цитата:
    SQL или сетевая?

    Серверная)....(в смысле сетевая?)....базы у нас SQL'ые....пользователей порядка 30-40

    Всего записей: 20 | Зарегистр. 18-09-2006 | Отправлено: 17:26 21-12-2006
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Malganus
    Есть задумки
    1. По таймеру на сервере останавливать службу SQL
    или  
    2. В 1С написать код, который по времени срабатывает и принудительно разрегистрирует пользователя из 1С (закроет программу)

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 17:41 21-12-2006
    Malganus

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KapralBel
    Это если известно точное время когда это нужно сделать.
    На самом деле это не известно. Это нужно, чтобы в случае, если прийдут плохие дяденьки, чтоб я двумя щелычками мыши вывел сервер с базами из сети, и сменил пользовательские базы, на резервные(белые), при запуске 1С. Т.е. у пользователя просто должна тупо закрыться 1С(как вариант терминалка...они все удаленно подключают к серверу) и при следующем запуске 1с у них должна подключиться другая база(белая).

    Всего записей: 20 | Зарегистр. 18-09-2006 | Отправлено: 17:47 21-12-2006
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Malganus
    Тогда 1-й строкой в батник включай
    sc \\server stop <имя службы SQL>
    К сожалению из-за того что я сейчас далеко от рабочего места - не смогу сказать как называется точно <имя службы SQL>

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 17:56 21-12-2006
    Malganus

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KapralBel
    Смотри, почему задумка с выкидом из 1С нужна. Нужно обязательно чтобы у пользователей закрылась 1С. После этого идет подмена списка баз на другие(пользователи визуально отличий не видят, просто путь будет к другой базе) и затем выключение сервера с основной базой.
    Т.е. получается, сидит юзер в 1с, тут она у него просто закрывается, он ее запускает и уже подключается к другой базе(не зная этого). А сервер с основной базой тихо и мирно выключается.

    Всего записей: 20 | Зарегистр. 18-09-2006 | Отправлено: 18:47 21-12-2006
    ra1n



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день всем.
     
    У меня вопрос, можно ли написать bat файл, выполняющий следующие действия:
     

    Цитата:
    По пунктам:
    1. Открываем regedit
    2. Становимся на HKEY_USERS
    3. File->Load Hive...->Documents and Settings\Default User\NTUSER.DAT->Open
    4. В открывшемся диалоге, даем ему имя DefUser
    5. В HKEY_USERS появилась ветка DefUser
    6. Редактируем ее
    7. Чтобы выгрузить эту ветку, становимся на нее и File->Unload Hive

     
    Спасибо!

    Всего записей: 328 | Зарегистр. 22-12-2006 | Отправлено: 09:40 22-12-2006
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Malganus
    Т.е. надо не придушить доступ к базе, а просто выкинуть их из программы
    См.
    TaskKill /?
     
    например TaskKill /S Comp1 /U Admin /P Pass_Admina /IM 1cv8.exe  /F /T
     
    И так для каждого компа
     
     
    ЗЫ. чисто личное мнение - у этих приходящих товарищей крайним окажешься ты

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 10:03 22-12-2006
    Malganus

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

    Цитата:
    TaskKill /S Comp1 /U Admin /P Pass_Admina /IM 1cv8.exe  /F /T

    Вместо Comp1 - имя машины, Admin и Pass_admin - данные учетки админа нужно заменить, так ? Админ локальный или админ домена пойдет? 1cv8.exe - здесь путь к этом файл вписать или нет?
    Вопрос такой, я пропишу для всех машин это. Что будет если одна из машин не будет подключена? Он ругаться не будет?

    Цитата:
    ЗЫ. чисто личное мнение - у этих приходящих товарищей крайним окажешься ты

    А как они узнают хоть чтото? Сервер с главной базой будет выключен и территориально его невозможно будет найти. Файлы со списком баз(путями к ним) будут подменены на другие, с путями к другим базам, которые находятся на другом сервере. Следов никаких нет. Ну точней следы то и можно найти, но они то проверят уже белые базы и придраться не к чему будет.

    Всего записей: 20 | Зарегистр. 18-09-2006 | Отправлено: 10:33 22-12-2006 | Исправлено: Malganus, 10:37 22-12-2006
    KapralBel



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

    Цитата:
     1. Вместо Comp1 - имя машины,  
    2. Admin и Pass_admin - данные учетки админа нужно заменить, так ?  
    3. Админ локальный или админ домена пойдет?  
    4. 1cv8.exe - здесь путь к этом файл вписать или нет?  

    1. Да
    2. Да
    3. Лучше домена
    4. без пути (придушит все открытые 1С)
     

    Цитата:
    А как они узнают хоть чтото

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

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 10:53 22-12-2006
    Tipulatoid



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Прошу помощи.
     
    Есть текстовый файл teams.txt В нем 6 строк:
     
    Krasnoyarsk
    Novosibirsk
    Orenburg
    Kostroma
    Tomsk
    Moskva
     
    Нужно получить шесть архивов формата у_Название_города.zip, где у - номер архива
     
    пишу для 1-го города  
     
    set /p team_1= < teams.txt
    zip 1_%team_1% *.dal
     
    Получается архив 1_Krasnoyarsk.zip В нем запакованы все файлы *.dal из текущей папки.  Т.е. все в порядке.
     
    для 2-го города:
    set /p team_2= < teams.txt, 2 (по моему разумению, параметр "2" в конце команды должен указывать, что значение переменной следует брать из 2-ой строки текстового файла :-)
    zip 2_%team_2% *.dau
     
    Не получается. Значение переменной "team_2" по-прежнему берется из 1-ой строки текстового файла. Т.е. получается архив 2_Krasnoyarsk.zip , а должен быть 2_Novosibirsk.zip
     
    В связи с этим вопрос: как явно указать, чтобы значение переменной бралось из 2-ой, 3-ей или какой другой строки текстового файла?
     
    Спасибо.

    Всего записей: 349 | Зарегистр. 22-12-2006 | Отправлено: 11:38 22-12-2006
    KapralBel



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

    Код:
    @Echo Off
    For /F "tokens=1-3 delims=;" %%a In (Teams.txt) Do ZIP %%a_%%b_%%a *.%%c

    Сам файл teams.txt
    Код:
    1;Krasnoyarsk;dal
    2;Novosibirsk;dau
    3;Orenburg;daw
    4;Kostroma;dab
    5;Tomsk;dat
    6;Moskva;dam


    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 11:49 22-12-2006
    Tipulatoid



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    to KapralBel: Однако, оперативный ответ получил. Спасибо огромное.

    Всего записей: 349 | Зарегистр. 22-12-2006 | Отправлено: 11:57 22-12-2006
    JohnRD

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

    Код:
    FOR /f "usebackq tokens=1,2* skip=4 eol=;" %%a IN (`reg query "HKLM\SYSTEM\ControlSet001\Services\cpdrvlib\license" /v PIDKEY`) DO IF "%%a"=="PIDKEY" SET MY_PIDKEY=%%c
     
    добавил
    Код:
    echo off > %MY_PIDKEY%
    получил файл с именем значения

    Код:
    echo %MY_PIDKEY% > result.txt
    так получил строчку со значением
    правильно нет

    Всего записей: 205 | Зарегистр. 29-08-2004 | Отправлено: 12:22 22-12-2006 | Исправлено: JohnRD, 12:25 22-12-2006
    Elroir



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

    Код:
    reg.exe load HKU\DefUser "C:\Documents and Settings\Default User\NTUSER.DAT"

    6 :  
    Запускаешь regedit и редактируешь или используешь reg.exe (reg.exe /?)
    7 :

    Код:
    reg.exe unload HKU\DefUser


    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 14:25 22-12-2006 | Исправлено: Elroir, 14:28 22-12-2006
    JohnRD

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    очередной вопрос
    есть фал 1.ini

    Код:
    [1 Options]
     
    BDEAlias=UESR_ASDUD
    SQLType=DOAOracle
     
    SecuritySystem=1
    WorkflowSystem=-
    ExchangeSystem=-
    ExchangeFile=-
    iKeyLogOn=-
    wbcontainer=iKey
    wbprefix=vcert
    iKey=+
    DeviceKeyDll=IKeyOld.dll
    HandleMsgParam=+
    SpellCheckerMode=0

     
    неоходимо заменить  
    iKeyLogOn=- на iKeyLogOn=+
    wbprefix=vcert на wbprefix=native
    iKey=+ удалить
     
    заранее благодарен

    Всего записей: 205 | Зарегистр. 29-08-2004 | Отправлено: 15:56 22-12-2006
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    JohnRD
    Счас нет времени написать такой батничек
    Попытайся модифицировать тот который я дал на этой странице Tipulatoid
    Только
    1. измени delims=; на delims== - будешь получать в %%a - ключ, в %%b - значение
    2. Проверяй ключ IF
    3. заменяй нужные параметры
    4. сбрасывай в файл 2.ini
    5. Замени 1.ini на 2.ini

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 16:36 22-12-2006
    Maza Faka



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    как запретить повторный запуск приложения при помощи bat файла?

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 18:52 22-12-2006
    igor_andreev

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

    Цитата:
    неоходимо заменить  
    iKeyLogOn=- на iKeyLogOn=+  
    wbprefix=vcert на wbprefix=native  
    iKey=+ удалить  

    В одну строчку

    Код:
     
    type 1.ini|gsar -s"iKeyLogOn=-" -r"iKeyLogOn=+" -F|gsar -s"wbprefix=vcert" -r"wbprefix=native" -F|gsar -s"iKey=+" -r -F >2.ini
     

    и 1.ini переименуй или удали, а 2.ini переименуй в 1.ini
    gsar.exe легко в инете находится, я юзаю отсюда http://home.online.no/~tjaberg/ (архив gsar112.zip, 42Кб)

    Всего записей: 1669 | Зарегистр. 08-12-2004 | Отправлено: 19:43 22-12-2006 | Исправлено: igor_andreev, 19:45 22-12-2006
    Elroir



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

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

    Смотрим, как называется приложение в диспетчере задач->процессы - например process.exe, тогда:

    Код:
     
    @echo off
    tasklist | find /i "process.exe">nul
    if %errorlevel%==1 process.exe
     

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 20:18 22-12-2006
       

    Страницы: 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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 2
    vu1tur (27-04-2007 11:55): продолжаем в теме «Задачи на bat-файлах 3»


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

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.Board
    © Ru.Board 2000-2020

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru