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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    Gabzya



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

    Всего записей: 1149 | Зарегистр. 14-12-2004 | Отправлено: 20:02 26-04-2007
    Starley25



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Я опять о своем вопросе, может быть конечно и моя вина, но я вас не уведомил, что пользую я W2K3 Server. Возможно от этого все ващи предложения оканчиваются сообщением о том, что Error Communication with PsExec service и дплее информация, что канал закрыт (The pipe has been ended).
     
    С уважением Starley25.

    Всего записей: 117 | Зарегистр. 07-03-2005 | Отправлено: 07:28 27-04-2007
    Maza Faka



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    DeMLaN
    Или если нет желания пользоваться сторонними утилитами, то можно так:

    Код:
     
    @echo off
    Setlocal Enabledelayedexpansion
    For /F "Tokens=*" %%a in (test.inf) do (
    Set String=%%a
    Echo %%a>> tmp
    If /i "!String!"=="[AddReg]" (Echo "HKCU,"Software\...","RunCount",0x00,0">> tmp)
    )
    Del /q /f test.inf
    Ren tmp test.inf
     

    Но метод Elroir-а мне больше понравился

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 08:56 27-04-2007
    qEraser



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Задача - запуск и работа 1с с конкретной конфигурацией с флэш-диска на любом компьютере.  
    Платформа + база находятся на флэш.
    Т.е подключив флэшку и запустив 1с с нее же, загружалась нужная конфигурация.
     
    Я могу написать bat файл который вносил бы соотв. записи в реестр, но в путях к базам нужно указать букву диска. Проблема в том, что компьютеры разные, соответственно флэш-диск будет иметь разные буквы в системе.
     
    Как можно реализовать?

    Всего записей: 180 | Зарегистр. 04-06-2004 | Отправлено: 10:03 27-04-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    qEraser
    Echo %0 = %~d0

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 10:14 27-04-2007
    qEraser



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

    Всего записей: 180 | Зарегистр. 04-06-2004 | Отправлено: 10:34 27-04-2007
    Tipulatoid



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

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

    Вот такой код тебе скажет букву флешки:

    Код:
    @echo off
    fsutil fsinfo drives|more>drv.del
    for /f "skip=2" %%a in (drv.del) do (
       fsutil fsinfo drivetype %%a|find "Съемный диск">nul && set flash=%%a
    )
    del drv.del
    echo Диск %flash% - флешка
     

     
    В переменной %flash% у тебя будет буква флешки. Используй ее дальше как хошь. Если в комп воткнуто несколько флешек, то данный код назовет последнюю букву
    Добавлено
    Код KapralBel скажет букву того диска, откуда запущен батник (т.е. если он с флешки запускается, то все ОК) мой вариант скажет букву флешки внезависимости от того где батник запущен

    Всего записей: 349 | Зарегистр. 22-12-2006 | Отправлено: 10:48 27-04-2007 | Исправлено: Tipulatoid, 10:53 27-04-2007
    yurkesha



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    qEraser
    for /?
    Код:
    %~dI        - из переменной %I выделяется только имя диска

    %0 - возвращает имя запускаемого скрипта
    Соответсвенно %~d0 вернет имя диска с которого стартанул скрипт.
     
    Добавлено: Tipulatoid а если у него флешка на два раздела разбита? А если это не флешка а внешний хард? А если это вообще что-либо доступное на чтение/запись и монтируемое не через usbstor(дискета или там ZIP-драйв или магнитооптика)? Способ KapralBel ИМХО универсален для софта типа "portable".

    ----------
    sic transit gloria mundi

    Всего записей: 2710 | Зарегистр. 15-12-2003 | Отправлено: 10:50 27-04-2007 | Исправлено: yurkesha, 10:58 27-04-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    qEraser
    Как тракутеся - уже объяснили

    Код:
     
    @Echo Off
    Set Drive=%~d0
     

    В переменной %Drive% - будет хранится буква диска с которого запущен батничек
     
    Tipulatoid

    Цитата:
    то данный код назовет последнюю букву

    Вот именно, кроме того как съемный диск  позиционируются не только флэшки

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 10:57 27-04-2007
    Tipulatoid



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

    Цитата:
    А если это не флешка а внешний хард?

    KapralBel

    Цитата:
    Вот именно, кроме того как съемный диск  позиционируются не только флэшки

     
    Согласен с вами

    Всего записей: 349 | Зарегистр. 22-12-2006 | Отправлено: 11:01 27-04-2007
    dvarok



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

    Цитата:
    dvarok так с каким путём запускается батник и по какому пути лежит  temp ?
    если пути вида \\server\share и temp лежит вместе с батником -  
    замени temp на %~dp0temp что-ли...

    батник и темп лежат в одной папке
     

    Цитата:
    dvarok
    Какой программой создаётся temp файл? Приведи, какая конкретно строка содержится в temp файле.

     
    программа taxcom referent, строка именно одна, в ней содержится только имя компа, с какого произошел запуск, ну например comp1, без пробелов в начале, просто одна запись.
    дело в том, что на просмотр файл можно открыть, и блокнотом и фаром, а скрипт грит, что файл не найдет, вероятно он его пытается открыть на запись?

    Всего записей: 17 | Зарегистр. 28-07-2006 | Отправлено: 11:45 27-04-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    dvarok
    Укажи полный путь к Темпу

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 11:53 27-04-2007
    vu1tur



    Moderator-Saaber
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    лимит страниц, продолжаем обсуждение в теме «Задачи на bat-файлах 3».

    ----------
    I am free of all prejudice. I hate everyone equally.

    Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:55 27-04-2007
       

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