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

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

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

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

   

vu1tur



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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:54 27-04-2007 | Исправлено: Elroir, 03:59 10-09-2007
    01MDM



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

    Цитата:
    только не порусски...

    Где идет вывод описания? Если в консоли, то не надо chcp 1251

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 07:55 01-08-2007
    JohnRD

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KapralBel
    01MDM
     
    да согласен
     
      1) Если вы устанавливаете клавиатуру или страну, отличающуюся от
         значения по умолчанию (США) то SETUP добавит в файл CONFIG.SYS
         следующую команду, чтобы выделить буфер для кодовой страницы:
     
              DEVICE=C:\DOS\DISPLAY.SYS CON=(,,1)
     
      2) В файл AUTOEXEC.BAT добавляются команды для подготовки и выбора
         кодовой страницы:
     
              MODE CON CP PREP=((850) C:\DOS\xxx.CPI)
                      (где xxx - EGA, EGAX или ISO)
     
              MODE CON CP SEL=850

    Всего записей: 205 | Зарегистр. 29-08-2004 | Отправлено: 09:02 01-08-2007 | Исправлено: JohnRD, 09:03 01-08-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    JohnRD
    А какая у тебя ОС?? 98?

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 12:48 01-08-2007
    JohnRD

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KapralBel
     
    ghost делает загрузочный CD на PCDOS 7
     
    я скачал http://dllianxiang.fastcdn.com/business/pcdos7.rar
    положил файлы
    DISPLAY.SYS
    EGA.CPI
    MODE.COM
     
    autoexec.bat

    Код:
     
    @echo off
    SET TZ=GHO-03:00
    prompt $p$g
    \net\Undipd.com 0x60
    if exist MOUSE.COM MOUSE.COM
    MODE CON CP PREP=((866) EGA.CPI)
    MODE CON CP SEL=866
    SET /P DESC=['ў_¤Ёв_ RЇЁб -Ё_ ¤<п бRеа -п_&#9488;R_R RЎа   Ё - &#9474;&#9488;Ёв_ ENTER:] - это DOS кодировка
    echo Loading...
    CD \GHOST
    GHOST.EXE -z1 -clone,mode=create,src=2,dst=@mcbackup -sure -split=0 -imgdesc=%DESC%
     

     
    config.sys

    Код:
     
    DEVICE=\net\undi_drv.exe
    DEVICE=\net\HIMEM.SYS
    LASTDRIVE = Z
    DEVICE=DISPLAY.SYS CON=(,,1)
     

     
    но чтото не увидел приглашения

    Всего записей: 205 | Зарегистр. 29-08-2004 | Отправлено: 13:04 01-08-2007 | Исправлено: JohnRD, 13:05 01-08-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    JohnRD
     SET /P работает только в NT-линейке (2000/XP/20003/Vista)
     
    Делай так

    Код:
    Echo Введите инф (после ввода нажмите Ctrl-Z)
    Copy con 2.bat
    Copy /b 1.bat+2.bat 3.bat
    call 3.bat

     
    Содержимое 1.bat

    Код:
    CD \GHOST
    GHOST.EXE -z1 -clone,mode=create,src=2,dst=@mcbackup -sure -split=0 -imgdesc=
     

    Обрати внимание, что после imgdesc=, нет перевода строки - сразу конец файла

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 13:11 01-08-2007 | Исправлено: KapralBel, 13:16 01-08-2007
    vmix



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

    Цитата:
    @echo off  
     
    for %%a in (old.tmp new.tmp) do if exist %%a del /f /q %%a ...  

     
    Работает отлично, спасибо!

    Всего записей: 162 | Зарегистр. 22-10-2002 | Отправлено: 20:13 01-08-2007
    GGS



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

    Код:
    TASKLIST /V /FO list > 1.txt

    выводить результат в кодировке 1251 или перекодировать результат без применения сторонних утилит, средствами WinXP.

    Всего записей: 1039 | Зарегистр. 25-03-2002 | Отправлено: 10:29 02-08-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    GGS
    Встроенными средствами - это достаточно трудоемко
    надо через возможности команды Set - делать замену одного символа на другой, т.е. символ в кодировке 866 меняется на символ в кодировке 1251

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 10:36 02-08-2007
    timex

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ну так что, никто не знает, как батником удалить файлы из одного каталога (бекапа), отсутствующие в другом, исходном (рабочем) каталоге?
     
    Например, переименовал файл в рабочем каталоге, а в резервной копии он остался со старым именем...

    Всего записей: 44 | Зарегистр. 26-12-2005 | Отправлено: 10:53 02-08-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    timex
    В общем по другому задача звучит так?
    При создании резервной копии каталога надо что бы они были одинаковыми, т.е. копировались новые иобновленные файлы, а не существующие удалались?
    Если так то возьми утилиту robocopy и ключ /mir

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 11:07 02-08-2007
    GORA2



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, а то в справке не оговорено. Правомочно ли использование в findstr двух строк поиска одновременно?
    Код:
    FOR /F "eol= tokens=* usebackq" %%i IN ("%~1") DO (
    echo %%i | findstr /b /i /c:"; This SFX archive was created using" /c:";!@InstallEnd@!">nul && set flag=1
    IF NOT DEFINED flag echo %%i>>temp_config.txt
    )

    Проверил, вроде работает, но можно ли так использовать findstr ?

    Всего записей: 1271 | Зарегистр. 26-01-2006 | Отправлено: 11:22 02-08-2007
    Maza Faka



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

    Цитата:
    можно ли так использовать findstr ?

    Получается, что можно.
     
    Добавлено:
    timex

    Цитата:
    как батником удалить файлы из одного каталога (бекапа), отсутствующие в другом, исходном (рабочем) каталоге?

    Под Win98 средствами батника затруднительно, лучше воспользуйся советом KapralBel-а.

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 11:36 02-08-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    GORA2
    Ты какую логическую операцию хочешь получить ? - И или ИЛИ
    У меня срабатыает ИЛИ, если надо И делай так

    Код:
    | findstr /c: ... | findstr /c: ... |

     
    Добавлено:
    Maza Faka
    timex
    Опс...
    Если у timex стоит 98 - robocopy там не работает
     
    Добавлено:
    timex
    Для 98 - сходу только 2 решения
    1-й вариант
    1. Переименовать папку резерва
    2. Создать новую
    3. Сделать архивную копию
    4. Удалить старую папку резерва
     
    2-й вариант (полуавтоматический)
    1. Делать архивные копии
    2. Изредка файловым менеджером (ФАР или ТС) - сравнивать обе папки и удалять лишее

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 11:42 02-08-2007
    GORA2



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KapralBel
    Нужно ИЛИ
    Еще вопрос. Ключ /b не работает если перед искомыми стрингами в исходном тексте от начала строки стоят одни пробелы т.е., если имеем текст
    Код:
    ;!@InstallEnd@! .....
         ;!@InstallEnd@! .....
    1   ;!@InstallEnd@! .....
     
    то найдет два раза (первая  и вторая строки), а должно только один раз (первая строка). Это можно вылечить?

    Всего записей: 1271 | Зарегистр. 26-01-2006 | Отправлено: 11:54 02-08-2007
    KapralBel



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

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 12:07 02-08-2007
    GORA2



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KapralBel
    Прошу пардону. Действительно заработало, а вчера наверное что было не так на солнце. Спасибо.

    Всего записей: 1271 | Зарегистр. 26-01-2006 | Отправлено: 13:26 02-08-2007
    timex

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KapralBel
    Цитата:
    timex  
    Для 98 - сходу только 2 решения  
    1-й вариант  
    1. Переименовать папку резерва  
    2. Создать новую  
    3. Сделать архивную копию  
    4. Удалить старую папку резерва  
     

     
    этот вариант не подходит, т.к. файлы в основном большие, копируются на флешку через usb 1.1 - очень долго.  
    У меня обновляются только исходники, в основном они и копируются в бэкап, а большие - очень редко.
     

    Цитата:
    2-й вариант (полуавтоматический)  
    1. Делать архивные копии  
    2. Изредка файловым менеджером (ФАР или ТС) - сравнивать обе папки и удалять лишее

     
    пока так и делаю я потому и спрашиваю - как то же самое сделать батником?!
     
    Неужели решение настолько сложное, что без посторонних программ не обойтись??

    Всего записей: 44 | Зарегистр. 26-12-2005 | Отправлено: 18:42 02-08-2007 | Исправлено: timex, 18:45 02-08-2007
    Maza Faka



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

    Цитата:
    Неужели решение настолько сложное, что без посторонних программ не обойтись??

    Нет, задача не сложная, просто под рукой нет компа с Windows 98, что бы проверить код, да и не знаю я, честно говоря, какие команды там будут работать, а какие нет, может кто решение при помощи WSH подскажет?
     Решение при помощи AutoIT устроит?

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 18:58 02-08-2007
    mbku

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте, очень интересный и полезный форум, правда еще пока мало по нему лазила.
    Но несколько раз заглядывала и всегда находила полезные вещи для себя в работе и с удовольствием воспользовалась.
     
    Вопрос1:  Где-то была ссылка на 3 книжки:
    Андрей Попов. Командные файла и сценарии Windows Script Host.....
    Джесси Торесс. Скрипты для администратора Windows.....
    Элин Фриш. Windows 2000: команды. Карманный справочник ....
    Есть ли еще книжки?
     
    Вопрос2:  Может очень глупый, но извините чайника.
    На работе внутренняя сеть куча компьютеров. Можно ли написать батник, проверяющий какие файлы и кем с моего компа читаются, открываются, копируются и т.п. в данный момент. А может можно и получит какой-то журнал за определенное время.
     
     
    Добавлено:
    И еще есть батник, в зависимости от разных условий идет по разным направлениям где-то заканчивает работу и т.п. Надо по каждой ветке на экран выдавать окошко c кнопкой “Ok” и чтоб сообщение было на русском. Я этим в принципе уже пользуюсь через создание  ДжаваСкриптовского файла с подключением Windows Script Host или посылаю себе же net send, но может существует еще какой-то способ?
     
    И еще батник, работает долго. Можно ли чтобы где-нибудь в отдельном окошке шли сообщения, что сейчас в данный момент батник делает.

    Всего записей: 26 | Зарегистр. 03-08-2007 | Отправлено: 07:20 03-08-2007
    Maza Faka



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

    Цитата:
    Где-то была ссылка

    А что, Яндекс отменили?
    Командные файлы и сценарии Windows Script Host
    Командная строка Microsoft Windows справочник администратора
     

    Цитата:
    какие файлы и кем с моего компа читаются

    net file

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 07:52 03-08-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

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


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru