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

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

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

vu1tur (25-01-2010 12:41): лимит страниц, продолжение: http://forum.ru-board.com/topic.cgi?forum=62&topic=19668  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117

   

vu1tur



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

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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:37 26-05-2009 | Исправлено: TechnicsKuzya, 13:53 27-12-2009
    Maza_Faka



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

    Цитата:
    Почему? Ведь переменные как раз-таки через %% обозначаются

    Смотря где. В bat-файле знаки процента нужно удваивать, а в ком. строке надо использовать одинарные.

    Цитата:
     
    For /?
    В пакетных файлах для команды FOR используется запись %% переменная вместо%переменная.
     

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 09:15 05-06-2009
    jonnydram

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maza_Faka
    Понял, спасибо! Ковыряюсь дальше..))
     
    Добавлено:
    А можно ли как-нибудь подключить удаленную командную строку? Как удаленный реестр подцеплять, к примеру.  
     
    Суть в чем - на моем ПК команда dsquery не определяется CMD-шником. А на серваке есть. Может быть cmd можно другой поставить, чтобы тоже коннектился к Active Directory?

    Всего записей: 19 | Зарегистр. 20-02-2009 | Отправлено: 09:31 05-06-2009
    alexander6161



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    Цитата:
    Батнику все равно какая система 32 или 64 - он делает только то, что прописано в его теле.
    Если там указан ключ hkcu\a\b\c, он и будет отрабатывать hkcu\a\b\c, а не hkcu\a\b\64\c

    Эта система Wow6432Node сама подменяет ключи реестра/папки, насколько я понимаю, и для 32-разрядного приложения они выглядят совсем по другому.
     
    Приложение обращается к ключу
    hkcu\a\b\c
    64-разрядное попадает на этот ключ: hkcu\a\b\c
    а 32-разрядное на этот: hkcu\a\b\Wow6432Node\c
    Хотя обращаются абсолютно к одному и тому же ключу.
     
    Вот и хочу понять - есть возможность запускать cmd.exe и reg.exe в 32-разрядном режиме, и как это сделать? Может у кого-то есть опыт в данном вопросе?

    Всего записей: 185 | Зарегистр. 17-08-2008 | Отправлено: 11:05 05-06-2009 | Исправлено: alexander6161, 11:08 05-06-2009
    VetalKr

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ
    !!!ОГРОМНОЕ СПАСИБО!!!
    Я в єтом деле еще новичек, вот учюсь.

    Всего записей: 3 | Зарегистр. 05-06-2009 | Отправлено: 11:43 05-06-2009 | Исправлено: VetalKr, 11:47 05-06-2009
    01MDM



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

    Цитата:
    Хотя обращаются абсолютно к одному и тому же ключу.

    У меня нет 64-битной системы, но я больше чем уверен, что батник будет исполнять только то, что в нем есть. Если написан ключ реестра hkcu\a\b\c, то ИМЕННО этот ключ в ходе выполнения батника и будет искаться. Запускай как хочешь, но результат зависит только от содержания.
     
    Как совет, организовать ветвление, в зависимости от версии виндовс. Если конкретный ключ не прописан, а просто запускается приложение, то здесь, извини, ничем не помогу.  

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 14:04 05-06-2009
    NIKZZZZ



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BAu3.exe ~ 2.8 Mb, (283 Kb BAu3.exe , остальное - описание)
     
    BAu3
     
     
    Существует довольно много сонсольных утилит, например CLCC, gsar,hstart, msgbox, nircmd  и т.п. , в большинстве случаев BAu3.exe их может заменить.
     
    BAu3.exe - Консольная утилита, позволяющая выполнить одну строку скрипта, написанного на Autoit с полной передачей данных в .bat файл.
    Можно, конечно , написать скрипт на самом Autoit, но это не всегда проще.
     
    Вообще-то утилита была написана для других целей, но адаптированная для батников оказалось достаточно удобной.  
     
     
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 23:57 05-06-2009 | Исправлено: NIKZZZZ, 23:59 05-06-2009
    lorents



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    такая проблема, нужно сделать печать нескольких картинок, вызовом диалогового окна печати, как это можно осуществить?

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 19:29 06-06-2009
    VetalKr

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как закрыть процесс через BAT-файл?

    Всего записей: 3 | Зарегистр. 05-06-2009 | Отправлено: 18:46 07-06-2009
    wolf0425



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

    Цитата:
    Как закрыть процесс через BAT-файл?

    taskkill.exe /?
     
     
    как из батника сделать lowerkeys имени файла?
    ЖЕлательно без внешних утилит

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 20:24 07-06-2009
    strat

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

    Цитата:
    как из батника сделать lowerkeys имени файла?

    однажды на ответах майл ру я отвечал на такой вопрос, предлагал в качестве решения программу, но был один гениальный ответ который я тут процитирую.
     
     
    Грозный Ламер

    Цитата:
     
    Только-что в целях эксперимента переименовал все файлы в текущей директории в нижний регистр одной единственной строчкой в командной строке:
    for /f %i in ('dir /b /l') do ren "%i" "%i"
     
    Синтаксический разбор:
    команда dir /b /l выводит только список файлов без дат, размеров и т. п. (ключ /B), используя для отображения только нижний регистр (ключ /L).
    Русским языком действие строки можно описать примерно так:
    для каждого файла в этой папке выполнить команду ren "имя файла" "имя файла"
    т. е. переименовать файл в самого себя. Но, т. к. имена "выводились" в нижнем регистре (только визуально), то и переименование будет происходить в нижний регистр (абсолютно реально).
     
    Например если в папке лежат 3 файла FILE1.EXT, File2.Ext и fiLe3.eXt, будут автоматом выполнены три команды:
    ren "file1.ext" "file1.ext"
    ren "file2.ext" "file2.ext"
    ren "file3.ext" "file3.ext"
    и файлы переименуются в file1.ext, file2.ext и file3.ext.
     
    И не надо никаких специальных программ.

    Всего записей: 459 | Зарегистр. 27-12-2005 | Отправлено: 21:05 07-06-2009 | Исправлено: strat, 21:10 07-06-2009
    HaK1R



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

    Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 23:41 07-06-2009
    alexander6161



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    Подменяются ключики. Сегодня экспериментировал. В Vista x32 то же самое. Тут как бы два уровня администратора, и когда прога работает не с полным доступом, но от администратора, то ключ вместо
    HKEY_LOCAL_MACHINE\SOFTWARE\
    подменяется на
    HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE\SOFTWARE\
    для всех приложений.
     
    В x64 ключ
    HKEY_LOCAL_MACHINE\SOFTWARE\
    подменяется на
    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\
    для 32-разрядных приложений.
     
    Это реальный факт и от него никуда не деться.

    Всего записей: 185 | Зарегистр. 17-08-2008 | Отправлено: 03:04 08-06-2009
    igor_andreev

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

    Цитата:
    был один гениальный ответ который я тут процитирую

    супер!

    Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 05:34 08-06-2009
    Maza_Faka



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

    Цитата:
    но был один гениальный ответ

    +5

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



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Всем привет! В общем сделал батничек, вроде работает, но не так как должен Хотя если разбить его на отдельные батники, то всё норм). Вот код:  
     

    Код:
    echo off
    chcp 1251
    setlocal enabledelayedexpansion
     
    for /f "tokens=*" %%i in (Imena_M.txt) do call:set "%%i"
    for /f "tokens=3 delims=_=" %%i in ('set value_') do set "randomValue1=%%i"
    call:unset
    for /f "tokens=*" %%i in (Otchestva_M.txt) do call:set "%%i"
    for /f "tokens=3 delims=_=" %%i in ('set value_') do set "randomValue2=%%i"
    call:unset
    for /f "tokens=*" %%i in (Familiy_M.txt) do call:set "%%i"
    for /f "tokens=3 delims=_=" %%i in ('set value_') do set "randomValue=%%i"
    call:unset
    echo Отчёт>Отчёты\%randomValue%.txt
    echo %randomValue% %randomValue1% %randomValue2%>>Отчёты\%randomValue%.txt
     
     
    for %%i in (1,2,3,4,5,6,7,8,9) do (
        for %%j in (1,2,0) do set q_%%i_!random!=%%j
        for %%j in (1,2,3,4,5,6,7,8,9) do set x_%%i_!random!=%%j
        for %%j in (6,7,8) do set z_%%i_!random!=%%j
    )
     
     for %%i in (1,2,3,4,5,6,7,8,9) do (
            for /f "tokens=4 delims=_=" %%j in ('set q_%%i') do set q-%%i=%%j
           for /f "tokens=4 delims=_=" %%j in ('set x_%%i') do set x-%%i=%%j
           for /f "tokens=4 delims=_=" %%j in ('set z_%%i') do set z-%%i=%%j
           for /f "tokens=4 delims=_=" %%j in ('set y_%%i') do set y-%%i=%%j
    )
     
    echo %q-1%%x-1%.0%x-4%.19%z-6%%x-7%>>Отчёты\%randomValue%.txt
     
     
     
    for %%i in (1,2,3,4) do (
            for %%j in (1,2,3,4) do set x_%%i_!random!=%%j
            for %%j in (1,2,3,4,5,6,7,8,9) do set y_%%i_!random!=%%j
    )
     
     for %%i in (1,2,3,4,5) do (
             for /f "tokens=4 delims=_=" %%j in ('set x_%%i') do set x-%%i=%%j
           for /f "tokens=4 delims=_=" %%j in ('set y_%%i') do set y-%%i=%%j
    )
     
    echo Отчёт>>Отчёты\%randomValue%.txt
     
    for /f "tokens=*" %%i in (Ukicy.txt) do call:set "%%i"
    for /f "tokens=3 delims=_=" %%i in ('set value_') do set "randomValue9=%%i"
    call:unset
    echo %randomValue9% %x-1%%y-1%-%x-2%%y-2%>>Отчёты\%randomValue%.txt
     
     
    for %%i in (1,2,3,4,5) do (
        for %%j in (5,4,3,5) do set x_%%i_!random!=%%j
        for %%j in (1,2,3,4,5,6,7,8,9,0) do set y_%%i_!random!=%%j
    )
     
    for %%i in (1,2,3,4,5) do (
        for %%j in (5,4,3,5) do set x_%%i_!random!=%%j
        for %%j in (1,2,3,4,5,6,7,8,9,0) do set y_%%i_!random!=%%j
    )
     
     for %%i in (1,2,3,4,5) do (
        for /f "tokens=4 delims=_=" %%j in ('set x_%%i') do set x-%%i=%%j
        for /f "tokens=4 delims=_=" %%j in ('set y_%%i') do set y-%%i=%%j
    )
     echo Отчёт%x-1%-%y-2%%y-3%-%y-4%%y-5%>>Отчёты\%randomValue%.txt
    for %%i in (1,2,3,4) do (
        for %%j in (1,2,3,4,5,6,7,8,9,0) do set y_%%i_!random!=%%j
       
    )
      for %%i in (1,2,3,4) do (
         for /f "tokens=4 delims=_=" %%j in ('set y_%%i') do set y-%%i=%%j
    )
     echo +Отчёт%y-1%%y-2%%y-3%%y-4%%y-5%>>Отчёты\%randomValue%.txt
     
     
    for %%i in (1,2,3,4,5) do (
        for %%j in (q,w,e,r,t,y,u,i,o,p,a,s,d,f,g,h,j,k,l,z,x,c,v,b,n,m) do set x_%%i_!random!=%%j
            for %%j in (1,2,3,4,5,6,7,8,9,0) do set y_%%i_!random!=%%j
    )
     
    for %%i in (1,2,3,4,5) do (
        for /f "tokens=4 delims=_=" %%j in ('set x_%%i') do set x-%%i=%%j
        for /f "tokens=4 delims=_=" %%j in ('set y_%%i') do set y-%%i=%%j
        )
     
    echo %x-1%%x-6%%x-2%%x-3%%x-4%%y-3%%x-5%%x-1%%x-5%%x-4%%y-1%%y-2%@gmail.com - %y-1%%x-2%%y-2%%y-3%%x-3%%y-4%%x-1%%x-5%%y-5%%y-1%%y-4%%y-6%>>Отчёты\%randomValue%.txt

    echo Отчёт>>Отчёты\%randomValue%.txt
    echo Отчёт - %x-1%%x-6%%x-2%%x-3%%x-4%%y-3%%x-5%%x-1%%x-5%%x-4%%y-1%%y-2% - %y-1%%x-2%%y-2%%y-3%%x-3%%y-4%%x-1%%x-5%%y-5%%y-1%%y-4%%y-6%>>Отчёты\%randomValue%.txt
    echo Отчёт - %x-1%%x-6%%x-2%%x-3%%x-4%%y-3%%x-5%%x-1%%x-5%%x-4%%y-1%%y-2% - %y-1%%x-2%%y-2%%y-3%%x-3%%y-4%%x-1%%x-5%%y-5%%y-1%%y-4%%y-6%>>Отчёты\%randomValue%.txt
     
     
    :set
    set "value_%random%=%~1"
    goto:eof
     
    :unset
    for /f "tokens=1 delims==" %%i in ('set value_') do set "%%i="

     
    Часть кода, который я выделил работает не так, т. е. на месте где должны стоять быкву он генерирует то цифры, то буквы. Если в коде что-то ещё не так, то пишите Если можете, то объясните, как какая часть кода работает поподробней или ссылку дайте плиз на какой-нить мануальчик, где ро это написано. Заранее благодарен.

    Всего записей: 43 | Зарегистр. 15-04-2009 | Отправлено: 11:44 08-06-2009
    Elroir



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

    Цитата:
    ты поставил errorlevel > 0. Вопрос: Почему больше? Кроме 0 и 1 errorlevel может принимает еще какие-нибудь значения или нет?

    Errorlevel может принимать любое значение - зависит от того, что возвращает программа. Например, значения errorlevel, возвращаемые командой xcopy, могут быть следующими: 0, 1, 2, 4 и 5. Обычно (но не всегда), код возврата равный нулю - означает успешное завершение работы.
    А команда после "||" сработает, только если errorlevel был больше нуля - так определили в Microsoft-е .

    ----------
    "В интернете есть все, но не всегда"

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 14:41 08-06-2009
    HaK1R



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Elroir
    Спасибо, буду знать.
    ZeroCrash
    я не понял в чем ошибка, но могу предположить что вот в этом

    Код:
    @echo off
    chcp 1251
    setlocal enabledelayedexpansion
     
    for /f "tokens=*" %%i in (Imena_M.txt) do call:set "%%i"
    for /f "tokens=3 delims=_=" %%i in ('set value_') do set "randomValue1=%%i"
    call:unset
    for /f "tokens=*" %%i in (Otchestva_M.txt) do call:set "%%i"
    for /f "tokens=3 delims=_=" %%i in ('set value_') do set "randomValue2=%%i"
    call:unset
    for /f "tokens=*" %%i in (Familiy_M.txt) do call:set "%%i"
    for /f "tokens=3 delims=_=" %%i in ('set value_') do set "randomValue=%%i"
    call:unset
    echo Отчёт>Отчёты\%randomValue%.txt
    echo %randomValue% %randomValue1% %randomValue2%>>Отчёты\%randomValue%.txt
     
     
    for %%i in (1,2,3,4,5,6,7,8,9) do (
        for %%j in (1,2,0) do set q_%%i_!random!=%%j
        for %%j in (1,2,3,4,5,6,7,8,9) do set x_%%i_!random!=%%j
        for %%j in (6,7,8) do set z_%%i_!random!=%%j
    )
     
     for %%i in (1,2,3,4,5,6,7,8,9) do (
            for /f "tokens=4 delims=_=" %%j in ('set q_%%i') do set q_%%i=%%j
           for /f "tokens=4 delims=_=" %%j in ('set x_%%i') do set x_%%i=%%j
           for /f "tokens=4 delims=_=" %%j in ('set z_%%i') do set z_%%i=%%j
           for /f "tokens=4 delims=_=" %%j in ('set y_%%i') do set y_%%i=%%j
    )
     
    echo %q-1%%x-1%.0%x-4%.19%z-6%%x-7%>>Отчёты\%randomValue%.txt
     
     
     
    for %%i in (1,2,3,4) do (
            for %%j in (1,2,3,4) do set x_%%i_!random!=%%j
            for %%j in (1,2,3,4,5,6,7,8,9) do set y_%%i_!random!=%%j
    )
     
     for %%i in (1,2,3,4,5) do (
             for /f "tokens=4 delims=_=" %%j in ('set x_%%i') do set x_%%i=%%j
           for /f "tokens=4 delims=_=" %%j in ('set y_%%i') do set y_%%i=%%j
    )
     
    echo Отчёт>>Отчёты\%randomValue%.txt
     
    for /f "tokens=*" %%i in (Ukicy.txt) do call:set "%%i"
    for /f "tokens=3 delims=_=" %%i in ('set value_') do set "randomValue9=%%i"
    call:unset
    echo %randomValue9% %x-1%%y-1%-%x-2%%y-2%>>Отчёты\%randomValue%.txt
     
     
    for %%i in (1,2,3,4,5) do (
        for %%j in (5,4,3,5) do set x_%%i_!random!=%%j
        for %%j in (1,2,3,4,5,6,7,8,9,0) do set y_%%i_!random!=%%j
    )
     
    for %%i in (1,2,3,4,5) do (
        for %%j in (5,4,3,5) do set x_%%i_!random!=%%j
        for %%j in (1,2,3,4,5,6,7,8,9,0) do set y_%%i_!random!=%%j
    )
     
     for %%i in (1,2,3,4,5) do (
        for /f "tokens=4 delims=_=" %%j in ('set x_%%i') do set x_%%i=%%j
        for /f "tokens=4 delims=_=" %%j in ('set y_%%i') do set y_%%i=%%j
    )
     echo Отчёт%x-1%-%y-2%%y-3%-%y-4%%y-5%>>Отчёты\%randomValue%.txt
    for %%i in (1,2,3,4) do (
        for %%j in (1,2,3,4,5,6,7,8,9,0) do set y_%%i_!random!=%%j
       
    )
      for %%i in (1,2,3,4) do (
         for /f "tokens=4 delims=_=" %%j in ('set y_%%i') do set y_%%i=%%j
    )
     echo +Отчёт%y-1%%y-2%%y-3%%y-4%%y-5%>>Отчёты\%randomValue%.txt
     
     
    for %%i in (1,2,3,4,5) do (
        for %%j in (q,w,e,r,t,y,u,i,o,p,a,s,d,f,g,h,j,k,l,z,x,c,v,b,n,m) do set x_%%i_!random!=%%j
            for %%j in (1,2,3,4,5,6,7,8,9,0) do set y_%%i_!random!=%%j
    )
     
    for %%i in (1,2,3,4,5) do (
        for /f "tokens=4 delims=_=" %%j in ('set x_%%i') do set x_%%i=%%j
        for /f "tokens=4 delims=_=" %%j in ('set y_%%i') do set y_%%i=%%j
        )
     
    echo %x-1%%x-6%%x-2%%x-3%%x-4%%y-3%%x-5%%x-1%%x-5%%x-4%%y-1%%y-2%@gmail.com - %y-1%%x-2%%y-2%%y-3%%x-3%%y-4%%x-1%%x-5%%y-5%%y-1%%y-4%%y-6%>>Отчёты\%randomValue%.txt
     
    echo Отчёт>>Отчёты\%randomValue%.txt
    echo Отчёт - %x-1%%x-6%%x-2%%x-3%%x-4%%y-3%%x-5%%x-1%%x-5%%x-4%%y-1%%y-2% - %y-1%%x-2%%y-2%%y-3%%x-3%%y-4%%x-1%%x-5%%y-5%%y-1%%y-4%%y-6%>>Отчёты\%randomValue%.txt
    echo Отчёт - %x-1%%x-6%%x-2%%x-3%%x-4%%y-3%%x-5%%x-1%%x-5%%x-4%%y-1%%y-2% - %y-1%%x-2%%y-2%%y-3%%x-3%%y-4%%x-1%%x-5%%y-5%%y-1%%y-4%%y-6%>>Отчёты\%randomValue%.txt
    goto :EOF  
     
    :set
    set "value_%random%=%~1"
    goto:eof
     
    :unset
    for /f "tokens=1 delims==" %%i in ('set value_') do set "%%i="

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

    Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 23:07 08-06-2009 | Исправлено: HaK1R, 00:12 09-06-2009
    ZeroCrash



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    HaK1R
     
    В выделенном мною участке кода :
     

    Код:
    for %%i in (1,2,3,4,5) do (
        for %%j in (q,w,e,r,t,y,u,i,o,p,a,s,d,f,g,h,j,k,l,z,x,c,v,b,n,m) do set x_%%i_!random!=%%j
            for %%j in (1,2,3,4,5,6,7,8,9,0) do set y_%%i_!random!=%%j
    )
     
    for %%i in (1,2,3,4,5) do (
        for /f "tokens=4 delims=_=" %%j in ('set x_%%i') do set x-%%i=%%j
        for /f "tokens=4 delims=_=" %%j in ('set y_%%i') do set y-%%i=%%j
        )
     
    echo %x-1%%x-6%%x-2%%x-3%%x-4%%y-3%%x-5%%x-1%%x-5%%x-4%%y-1%%y-2%@gmail.com - %y-1%%x-2%%y-2%%y-3%%x-3%%y-4%%x-1%%x-5%%y-5%%y-1%%y-4%%y-6%>>Отчёты\%randomValue%.txt
     
     
    переменная X должна быть цифрой, а Y буквой, но в результате работы некоторые Y тоже получаются цифрами. Причём, если этот участок кода вставить в отдельный батник, то всё работает как надо.  
     
    Твой вариант кода сейчас опробовать некогда (сёдня днюха). Как проверю отпишусь.

    Всего записей: 43 | Зарегистр. 15-04-2009 | Отправлено: 08:37 10-06-2009
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ZeroCrash
    С днюхой!
     
    Область :unset служит для очистки переменных вида "%value_.....%", ну а %x_% и %y_% тоже самое, но они у тебя не очищаются. Получается что у тебя переменные из предыдущих блоков обрабатываются повторно в последующих блоках.
     
    Есть два варианта:
    1. Для каждого блока сценария создать вместо "x" и "y" уникальные переменные
    2. Написать :unset_2 для переменных вида %x_.....% и %y_.....%

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 10:59 10-06-2009
    Boxa_win

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как в бат-файле сравнить дату создания файла с текущей и если не совпадает переписать его

    Всего записей: 8 | Зарегистр. 23-04-2009 | Отправлено: 13:06 11-06-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 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 7
    vu1tur (25-01-2010 12:41): лимит страниц, продолжение: http://forum.ru-board.com/topic.cgi?forum=62&topic=19668


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru