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

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

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

vu1tur (26-05-2009 11:39): часть 7 — http://forum.ru-board.com/topic.cgi?forum=62&topic=17154#1  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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-файлах 6
(часть 1, часть 2, часть 3, часть 4, часть 5)
Вопросы, задачи и их решения по работе с командными файлами, а также сопутствующие ссылки.

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

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





    http://forum.ru-board.com/topic.cgi?forum=62&topic=17154

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 23:07 04-11-2008 | Исправлено: vu1tur, 11:38 26-05-2009
    Kilyan



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите!
    Существует ли в природе sed.exe, работающий без левых dll?
    Не очень удобно постоянно таскать (libiconv2.dll и libintl3.dll)

    Всего записей: 886 | Зарегистр. 04-09-2008 | Отправлено: 20:42 06-03-2009
    lorents



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    может кто знает как через бантик отправить на печать фотографии через функцию мастер печати фотографий? или через какую нибудь другую функцию?

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 21:02 06-03-2009 | Исправлено: lorents, 21:03 06-03-2009
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    braconier
    для работы с папками идеальней robocopy не придумаешь
    когда же я устану это повторять?
     
    LiLysh
    Код:

    Windows Registry Editor Version 5.00
     
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\имя службы]
    "Start"=dword:00000002

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 23:07 06-03-2009
    NvvLazyTiger



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Kilyan
    Цитата:
    Существует ли в природе sed.exe, работающий без левых dll?
    Загляни сюда: "sed, the stream editor".
     
    В частности:
    Цитата:
    super-sed v3.59, executable compiled for Win32 systems. If you run under Windows, this is all you need.

    Всего записей: 257 | Зарегистр. 14-02-2009 | Отправлено: 05:38 07-03-2009
    Maza_Faka



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

    Код:
     
    sc config "Имя Службы" start= auto
     

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 07:08 07-03-2009
    wolf0425



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

    Цитата:
    Существует ли в природе sed.exe, работающий без левых dll?  

    был тут http://unxutils.sourceforge.net пока скачивалка не сломлась.
     
    http://www.student.northpark.edu/pemente/sed/gsed407x.zip
    вроде бы взятая с unxutils копия

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 08:21 07-03-2009 | Исправлено: wolf0425, 08:25 07-03-2009
    TechnicsKuzya



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Резюме из вышеприведенных скриптов (может, конечно, когда-то в какой-то форме и приводилось решение этих задач):
     
    Как известно, если кодовая страница операционной система не будет содержать набор кириллических символов, то вывод русскоязычных сообщений будет происходит в абракадабре.
     
    Код для решения данной проблемы (определения языка вывода сообщений) прост:
     

    Код:
     
    @echo off
    set detect_CP=HKLM\SYSTEM\CurrentControlSet\Control\Nls\CodePage
     
    for /f "tokens=3" %%c in ('reg query "%detect_CP%" /v OEMCP^|findstr /I /C:"OEMCP"') do if not "%%c"=="866" goto eng
     
    echo Russian
    pause
    exit  
     
     
    :eng
    echo English
    pause
    exit
     

     
    Если необходимо изъять дату файла в определенном Вами формате для этого можно принудительно задать необходимый Вам формат в реестре, естественно, предварительно сохранив старый, для его восстановления.
     
    Пример для файла explorer.exe из папки %WINDIR%:
     

    Код:
     
    @echo off
    set detect_DF=HKCU\Control Panel\International
    set my_date_format=dd_MM_yyyy
     
    reg export "%detect_DF%" DateFormat.reg 1>nul 2>&1
     
    reg add "%detect_DF%" /v sShortDate /t REG_SZ /d "%my_date_format%" /f 1>nul 2>&1
     
    for /f "tokens=1" %%d in ('dir %WINDIR%\explorer.exe /T:W^|findstr /I /C:"explorer"') do echo %%d
     
    (reg delete "%detect_DF%" /v sShortDate /f 1>nul 2>&1)&(reg import DateFormat.reg 1>nul 2>&1)
     
    pause
    exit
     

    Всего записей: 495 | Зарегистр. 02-02-2008 | Отправлено: 10:13 07-03-2009 | Исправлено: TechnicsKuzya, 11:05 07-03-2009
    graydevil



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    А как взять переменные из файла, положим есть файл -  
     
    user.txt
     
    содержимое :
     
    user
    pass
    workgroup
    name
    ip
    mask
    dns
     
    вот, эти строки присвоить переменным батника...
     

    Всего записей: 59 | Зарегистр. 14-04-2006 | Отправлено: 13:32 07-03-2009 | Исправлено: graydevil, 14:09 07-03-2009
    NvvLazyTiger



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    graydevil
    Цитата:
    как взять переменную из файла
    [...]
    эти строки присвоить переменным батника

    Например, так:
    Код:
    goto GetVars
    :SetVars присвоение значений переменным
    if %count% == 1 set user=%*
    if %count% == 2 set pass=%*
    if %count% == 3 set workgroup=%*
    if %count% == 4 set name=%*
    if %count% == 5 set ip=%*
    if %count% == 6 set mask=%*
    if %count% == 7 set dns=%*
    :: инкремент счётчика
    set /a count=%count%+1
    goto :eof
     
    :GetVars установка счётчика, перебор строк
    set count=1
    for /f "tokens=*" %%a in (user.txt) do call :SetVars %%a

    UpDate Выделенное обеспечивает присвоение именно строки. Иначе присваивается первый элемент оной.

    Всего записей: 257 | Зарегистр. 14-02-2009 | Отправлено: 14:20 07-03-2009 | Исправлено: NvvLazyTiger, 14:46 07-03-2009
    TechnicsKuzya



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

    Код:
     
    for /F "tokens=*" %%s in (user.txt) do set %%s
     

     
    Но содержание файла должно быть к примеру таким:
     

    Код:
     
    user=123456
    pass=123456
    workgroup=Group
    name=Comp
    ip=192.168.0.1
    mask=255.255.255.0
    dns=192.168.0.1
     

    Всего записей: 495 | Зарегистр. 02-02-2008 | Отправлено: 16:11 07-03-2009
    zzxx1488

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    залил копию UnxUtils c http://unxutils.sourceforge.net/ в связи с тем, что даунлоад мертвый с оффсайта
    в архиве unxutils.zip & unxupdates.zip последние версии
    взять можно отсюда:
    http://www.gazup.com/4BR8E-unxutils.rar-download-mirrors

    Всего записей: 62 | Зарегистр. 04-10-2008 | Отправлено: 17:53 07-03-2009
    NvvLazyTiger



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ... А мне вот такая конструкция:
    Код:
    for /f "eol=; tokens=1* delims==" %%a in (MyFile) do if /i '%%a'=='MyKey' set MyVal=%%b
    позволяет считывать значение ключа MyKey из файла MyFile в переменную MyVal.  
     
    Причём:
    • имя ключа (mYkEy) - регистронезависимо;
    • это имя должно начинаться с первой позиции строки файла и завершаться символом "=" (0x3D);
    • если ключ задан несколько раз, в переменную (MyVal) считывается последнее значение;
    • если ключа в файле нет или его значение не задано, указанная переменная - пуста (не определена);
    • символ ";" (0x3B) - "начало комментария в строке" (т.е. не может быть частью значения);
    • строчки (в файле) с "чем попало" желательно оформлять как комментарии;
    • специальные (например, 0x26)  и "непечатные" (например, 0x1B) символы в именах/значениях лучше не использовать.

    Всего записей: 257 | Зарегистр. 14-02-2009 | Отправлено: 04:19 08-03-2009
    Herissen



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

    Всего записей: 12 | Зарегистр. 26-02-2009 | Отправлено: 13:21 08-03-2009
    TechnicsKuzya



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    xcopy /? - даст справку о том, что делает команда, можете привести полную строку которая использовалась при применении команды?

    Всего записей: 495 | Зарегистр. 02-02-2008 | Отправлено: 13:38 08-03-2009
    Herissen



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    хсору "что" "куда" /mir /mot:1
     
    Добавлено:
     и еще подскажите как копировать папку с файлами на сетевой ресурс типа ФТП где используеться логин и пароль

    Всего записей: 12 | Зарегистр. 26-02-2009 | Отправлено: 13:43 08-03-2009
    TechnicsKuzya



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    /mir /mot:1 - это что такое?

    Всего записей: 495 | Зарегистр. 02-02-2008 | Отправлено: 13:48 08-03-2009
    igor_andreev

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

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

    Готовая фраза для башорг

    Цитата:
    /mir /mot:1 - это что такое?

    это ключи robocopy.exe

    Цитата:
    Вопрос такой хсору делает все изменения которые происходят с первичной папкой или я чтото не понимаю.

    Ну если ты robocopy юзаешь с ключом /MIR - то да, в source файлы пропали, robocopy зеркало сделала в destination
     

    Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 13:51 08-03-2009 | Исправлено: igor_andreev, 14:05 08-03-2009
    Herissen



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Прошу прощения за неточность использую утилиту robocopy. отвлекли ))
     
    Добавлено:

    Цитата:
    Готовая фраза для башорг  

    не возражаю

    Всего записей: 12 | Зарегистр. 26-02-2009 | Отправлено: 13:53 08-03-2009
    TechnicsKuzya



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    С robocopy не сталкивался, так, что no comment, извиняюсь...

    Всего записей: 495 | Зарегистр. 02-02-2008 | Отправлено: 13:57 08-03-2009
    Herissen



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    to igor_andreev  уважаемый подскажите как с помощью robocopy  копировать на ФТП

    Всего записей: 12 | Зарегистр. 26-02-2009 | Отправлено: 14:10 08-03-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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 6
    vu1tur (26-05-2009 11:39): часть 7 — http://forum.ru-board.com/topic.cgi?forum=62&topic=17154#1


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru