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

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



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

    Всего записей: 6 | Зарегистр. 30-05-2008 | Отправлено: 13:49 17-05-2009
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    EDINochka
    1. Не совсем понятен вопрос. Имеется ввиду ввод через "set /p" ?
    2. Сложить можно поразрядно, почти "в столбик", или пoсмотреть в шапке утилиту clcc

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



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM, да через "set /p".

    Всего записей: 6 | Зарегистр. 30-05-2008 | Отправлено: 18:59 17-05-2009
    Alex1985

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    smirnvlad
    кажется, echo лишнее, с ним не работает. или может код правится по другому а не удалением echo как это сделал я?
    но в любом случае спасибо большое!

    Всего записей: 814 | Зарегистр. 07-05-2004 | Отправлено: 19:39 17-05-2009 | Исправлено: Alex1985, 19:46 17-05-2009
    mdmaa

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    есть 2 выделенки, А получает все реквезиты автоматически, В - нужно прописывать ручками, собственно как сделать, чтоб не прописывать каждый раз....

    Всего записей: 17 | Зарегистр. 03-12-2008 | Отправлено: 22:36 17-05-2009
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mdmaa
    netsh dump>netsettings.inf
    netsh exec netsettings.inf

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 23:08 17-05-2009
    king_stiven

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

    Код:
    @echo off
    setlocal enabledelayedexpansion
    set /p number=Enter number:  
    call :klf
    goto :eof
    :klf
    FOR /L %%e IN (0,1,100) DO (
        if "!number:~%%e,1!"=="" goto :end
        if "!number:~%%e,1!"=="0" set yes=1
        if "!number:~%%e,1!"=="1" set yes=1
        if "!number:~%%e,1!"=="2" set yes=1
        if "!number:~%%e,1!"=="3" set yes=1
        if "!number:~%%e,1!"=="4" set yes=1
        if "!number:~%%e,1!"=="5" set yes=1
        if "!number:~%%e,1!"=="6" set yes=1
        if "!number:~%%e,1!"=="7" set yes=1
        if "!number:~%%e,1!"=="8" set yes=1
        if "!number:~%%e,1!"=="9" set yes=1
        if not defined yes (
            set /a chislo=%%e+1
            echo !chislo!  The entered Symbol  "!number:~%%e,1!" is not Number
            pause
        )
        set yes=
    )
    :end

    Задание такое задали что ли?

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 23:09 17-05-2009 | Исправлено: king_stiven, 23:10 17-05-2009
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Можно ли из батника определить - есть ли сейчас окно с  именем name1?
     
    Или еще каким-то определить - запущена сейчас другая копия этого батника или нет...
    батник в 100% случаев терминируется через таскменеджер, так что менять какой-то флажок при завершении, а при старте проверять - не вариант, afaik.

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 00:29 18-05-2009 | Исправлено: wolf0425, 00:36 18-05-2009
    king_stiven

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

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 07:23 18-05-2009 | Исправлено: king_stiven, 09:41 18-05-2009
    anachrom

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

    Цитата:
    А какие трудности с прямой архивацией? в цикле FOR парсишь свой список и сразу выполняешь команду архивации. Надо только либо использовть полный путь при вызове архиватора или размещать его по путям описанным в PATH.

    А вот никак нельзя, что бы архватор в той жепапке и оставался, и никаких путей прописывать ненадобыло?
     
    Добавлено:
    Во, придумал. Можно, что бы батник, сам считывал свое местоположеие, и это пестоположение впихивал бы как путь до архиватора.
    Это вообще реально?

    Всего записей: 179 | Зарегистр. 18-11-2008 | Отправлено: 09:22 18-05-2009
    king_stiven

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

    Цитата:
    Можно, что бы батник, сам считывал свое местоположеие, и это пестоположение впихивал бы как путь до архиватора.  

    Ну шо ж ты в шапку то не смотришь? Пробежаться по ссылкам 5 минут.
     
    Добавлено:

    Цитата:
    Переменная %0  


    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 09:36 18-05-2009
    anachrom

    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    king_stiven
    С переменной то я разобрался. А вот как это все будет применительно к коду батника бэкапа?
    Я уже и так и так попробовал. Ну плохо у меня получается писать. Такая белиберда получается.
    Я уже за книжичку засел. Но нахожусь пока на стадии зародыша "чайника". Стадию "кипятильник" прошел.

    Всего записей: 179 | Зарегистр. 18-11-2008 | Отправлено: 10:24 18-05-2009
    01MDM



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

    Цитата:
    Во, придумал. Можно, что бы батник, сам считывал свое местоположеие, и это пестоположение впихивал бы как путь до архиватора.  

     

    Код:
     
    set arch=%~dp0arch.exe
     

     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 10:29 18-05-2009
    Shestipaliy

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите пожалуйста, никак не могу понять почему на последнюю строку я получаю сообщение об ошибке "Непредвиденное появление: диск.". Этот код просто должен выводить список жесткик дисков в системе... Я видимо просто не до конца понимаю как в батниках работать с переменными, сравнивать и пр.
     
    @echo off
    SetLocal EnableExtensions EnableDelayedExpansion
     
    set drives=
    for /f "usebackq tokens=1*" %%a in (`FSUTIL FSINFO DRIVES ^| find ":"`) do (
        if /i "%%a" NEQ "„ЁбЄЁ:" (
            set "drives=!drives! %%a"
            (call :sub %%a)  
     
        ) ELSE (
            set "drives=!drives! %%b"
            (call :sub %%b)  
     
        )
    )
     
    :sub
     
    For /F "Delims=" %%I In ('FSUTIL FSINFO drivetype %1') Do Set V=%%~I
    set type=%v:~6%
    Echo %type%
    if %type% == "Жесткий диск" Echo %v%

    Всего записей: 9 | Зарегистр. 19-03-2009 | Отправлено: 15:30 18-05-2009
    NIKZZZZ



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

    Цитата:
    FSUTIL FSINFO DRIVES

    Эта команда при выводе разделяет диски символом 0x0 (chr(0)), он не будет корректно отрабатываться.
       

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 16:36 18-05-2009
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Shestipaliy
    Потому что это fsutil.. Ее вывод на консоль разделен не пробелами, а "нулем"

    Код:
     
    @echo off
    setLocal
     
    for /f "tokens=1 delims=\" %%i in ('fsutil fsinfo drives ^| more') do call:echo "%%i"
    goto:eof
     
    :echo
    set disk=%~1
    set disk=%disk:~-2%
     
    for /f "tokens=2*" %%i in ('fsutil fsinfo drivetype %disk% ^| findstr Ж') do echo %disk% %%i %%j
     

     
     
    Добавлено:
    NIKZZZZ
     
    :)

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 16:43 18-05-2009
    milito

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

    Всего записей: 1 | Зарегистр. 18-05-2009 | Отправлено: 17:15 18-05-2009
    Shestipaliy

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    Спасибо за помощь. Все работает, если сохранять в вордпаде в досовской кодировке).

    Всего записей: 9 | Зарегистр. 19-03-2009 | Отправлено: 17:17 18-05-2009
    Mr_Hat



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    hI All!
    Подскажите как произвести поиск в реестре по заданой строке с помощью батника,
    при совпадении ключи и параметры сохраняются в REG файл ?!  
     
    Решение найдено:

    Код:
    @echo on
    del /f /q c:\*.tmp
    REG EXPORT HKLM c:\HKLM.tmp
    REG EXPORT HKCU c:\HKCU.tmp
    REG EXPORT HKCR c:\HKCR.tmp
    REG EXPORT HKU c:\HKU.tmp
    REG EXPORT HKCC c:\HKCC.tmp
    echo. Windows Registry Editor Version 5.00 >c:\Forvardt.reg
    echo. >>c:\Forvardt.reg
    more c:\HKLM.tmp HKCU.tmp HKCR.tmp HKU.tmp HKCC.tmp | find /i "microsoft" >>c:\Forvardt.reg
    del /f /q c:\*.tmp

     
    только теперь почему то не обрабатываются остальные файлы реестра, батник подвисает.
    обрабатывается только первый куст "HKLM" и висит...
    до того как была использована дополнительная команда "More" все работало, все кусты обрабатывались,
    "More" необходима для удаления мусора отчета после команды "find"
    Есть идеи что не верно в этом коде ?

    Всего записей: 984 | Зарегистр. 04-10-2005 | Отправлено: 18:30 18-05-2009 | Исправлено: Mr_Hat, 20:14 18-05-2009
    ghosty



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Прошу о помощи у местных гуру
     
    Я выступаю "бета-тестером" очень полезного батника, призванного перекинуть папку c:\windows\installer с одного диска на другой. Никакие штатные средства не позволяют это сделать - там очень большие заморочки. Тема особенно актуальна для пользователей нетбуков, у которых один диск быстрый, другой - медленный (типа Asus eee PC):
    http://forum.ru-board.com/topic.cgi?forum=62&topic=17017&glp#lt
     
    Совсем недавно решение этой проблемы было найдено, но в инструкции слишком много букв, и обычный пользователь может легко ошибиться:
    http://prism-it-services.com.au/blog/?tag=eee-pc
     
    Поэтому автором идеи был написан батник. Но у меня он почему-то не работает. Вот комплект вместе с батником:
    http://rapidshare.com/files/234413196/eeePC.rar
    Чтобы он работал, майрософтовскую утилиту Siubinacl нужно установить, а также майрософтовскую утилитку junction.exe забросить в %windir%\system32
    Вот полная инструкция (на английском): http://prism-it-services.com.au/blog/free-up-space-on-your-eee-pc-automated-method/
     
    Буду очень признателен за любую помощь в отладке этого батника. Вы поможете тысячам людей

    ----------
    пропадет-растает

    Всего записей: 6808 | Зарегистр. 21-09-2002 | Отправлено: 18:49 18-05-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