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

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

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

vu1tur (04-09-2010 17:46): http://forum.ru-board.com/topic.cgi?forum=62&topic=21297  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199

   

vu1tur



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

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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 12:40 25-01-2010 | Исправлено: bomzzz, 13:37 20-08-2010
    Mark_Titov



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

    Цитата:
    замени  
        start "" call "%0" /service    
    на  
        start "" cmd /C "%0" /service  

    ...Да, отлично, благодарю тебя res2001, а как можно статусы выровнять по правой стороне?

    Всего записей: 387 | Зарегистр. 12-04-2010 | Отправлено: 20:20 13-06-2010
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Нарыл на RSDN неплохой мануал по батникам:
    http://www.rsdn.ru/article/winshell/batanyca.xml

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 20:23 13-06-2010
    wolf0425



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

    Цитата:
    start "" cmd /C "%0" /service  

    лучше все же на start "" cmd /C "%~f0" /service  
     

    Цитата:
    Второй вариант должен работать в любых условиях.  

    оптимизм очень нездоровый, минимум одно исключение знаю я
     
     
     
    Добавлено:

    Цитата:
    Нарыл на RSDN неплохой мануал по батникам:  

    Mark_Titov, это тебе, бегом читать

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 20:25 13-06-2010
    res2001



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

    Цитата:
    а как можно статусы выровнять по правой стороне?  

    Способа выравнивания в выводе echo не знаю.
    Тут дело осложняется тем, что DISPLAY_NAME имеет переменную длину и иногда достаточно длинную.
    Может кто-нить другой тут знает?

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 20:26 13-06-2010
    wolf0425



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

    Цитата:
    Может кто-нить другой тут знает?
    ну я наверно знаю, но я один раз для Mark_Titov код печати статусов сервисов с выравниванием по номеру колонки - уже писал когда-то, на пользу ему это не пошло.
    Разбираться в том что же делает код что для него пишут - он кажись принципиально не планирует.
     

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 20:32 13-06-2010 | Исправлено: wolf0425, 20:33 13-06-2010
    res2001



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

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 21:19 13-06-2010
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    res2001 загнать в переменную, дополнить её справа избытком пробелов, отрезать первые nn символов, вывести.  примерно так оно и делалось:
       
    цвет - это уже его собственная самодеятельность

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 21:23 13-06-2010 | Исправлено: wolf0425, 21:29 13-06-2010
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    wolf0425
    ясно, спс.
     
    Добавлено:
    Mark_Titov
    Применил способ выравнивания от wolf0425, за что ему отдельный респект
    Замени
    echo !sernum! ^(!svcn!^) !svcd! %%c  
     
    на это
    set "txt=!sernum! ^(!svcn!^) !svcd!                                                                       "
    echo !txt:~0,70! %%c
     
    Обрати внимание на set там в конце куча пробелов, около 70 должно быть.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 21:24 13-06-2010
    Mark_Titov



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

    Цитата:
    Замени  
    echo !sernum! ^(!svcn!^) !svcd! %%c  
    на это  
    set "txt=!sernum! ^(!svcn!^) !svcd!                                                                       "  
    echo !txt:~0,70! %%c

    Отлично! Парни, спасибо за ваш труд и за помощь!
    Благодарю....

    Всего записей: 387 | Зарегистр. 12-04-2010 | Отправлено: 22:33 13-06-2010 | Исправлено: Mark_Titov, 22:34 13-06-2010
    WesternLight

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

    Цитата:
    пока в голову приходит только хак:
     
    Код:
    for /f "delims=" %%a in ('@"%cd%\reg.exe" query "HKCU\Console" ^| findstr.exe /b /i /r HKEY_CURRENT_USER\\Console\\. ') do "%CD%\reg.exe" delete %%a /f  

    wolf0425, ну, так вроде бы работает... только в чем суть? Что значит '@? И что получается, что одинарные и двойные кавычки в for /f использовать нельзя? Итого код:

    Код:
    @echo off
     
    chcp 1251>nul
     
    "%CD%\reg.exe" query HKCU\Console /s | findstr.exe /i /r FaceName.*Terminal 1>nul && (
     
    for /f "delims=" %%a in ('@"%CD%\reg.exe" query "HKCU\Console" ^| findstr.exe /b /i /r HKEY_CURRENT_USER\\Console\\. ') do "%CD%\reg.exe" delete %%a /f
     
    "%CD%\reg.exe" add "HKCU\Console" /v FontSize /t REG_DWORD /d 1048576 /f
    "%CD%\reg.exe" add "HKCU\Console" /v FontFamily /t REG_DWORD /d 54 /f
    "%CD%\reg.exe" add "HKCU\Console" /v FontWeight /t REG_DWORD /d 400 /f
    "%CD%\reg.exe" add "HKCU\Console" /v FaceName /t REG_SZ /d "Lucida Console" /f
     
    start "" "%~f0" %* & exit
     
    ) 1>nul
     
     
    :begin
    echo Кракозябрам нет!
     
    pause
    exit

    вот еще прикол, добавил команду title Я прога, так теперь в заголовке кракозябры при любом шрифте... Елки-палки, что теперь не так?

    Всего записей: 61 | Зарегистр. 07-10-2007 | Отправлено: 22:47 13-06-2010 | Исправлено: WesternLight, 23:02 13-06-2010
    wolf0425



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

    Цитата:
    только в чем суть? Что значит '@?
    @ в первом символе команды - дополнительно напоминает что команду запускать без эховывода.
    А работает с ним потому, что у for какие-то глюки с двойными кавычками, если с них начинается имя команды внутри (' '). если первая команда начинается с буквы/цифры/@ - она опознается замечательно.
    а одинарные нельзя без usebackq - они только снаружи
     

    Цитата:
    добавил команду title Я прога, так теперь в заголовке кракозябры при любом шрифте...  
    в какое место добавил - мне у телепатов спрашивать?
    хотя понятно что ты или добавил почему-то до chcp или у тебя неуникодный фонт в виндах заголовки рисует. недефолт.  
     

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 23:57 13-06-2010 | Исправлено: wolf0425, 00:44 14-06-2010
    Mark_Titov



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

    Всего записей: 387 | Зарегистр. 12-04-2010 | Отправлено: 00:19 14-06-2010
    WesternLight

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

    Цитата:
    хотя понятно что ты или добавил почему-то до chcp или у тебя неуникодный фонт в виндах заголовки рисует. недефолт.

    ну, wolf0425, молодец! ты телепат да, в этих разборах "почему" я уже совершенно забыл про начало начал - title до chcp, сам себе удивляюсь... кстати, зачем ^ здесь:

    Код:
    for /f "delims=" %%a in ('@"%CD%\reg.exe" query "HKCU\Console" ^| findstr.exe /b /i /r HKEY_CURRENT_USER\\Console\\. ') do "%CD%\reg.exe" delete %%a /f

    Всего записей: 61 | Зарегистр. 07-10-2007 | Отправлено: 00:47 14-06-2010 | Исправлено: WesternLight, 01:12 14-06-2010
    wolf0425



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

    Цитата:
    кстати, зачем ^ здесь:  
    потому что внутри for ()

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 02:14 14-06-2010
    WesternLight

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

    Цитата:
    потому что внутри for ()  

    да, я много нового узнал на примере этого кода...

    Всего записей: 61 | Зарегистр. 07-10-2007 | Отправлено: 02:45 14-06-2010
    AkeHayc

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    Пожалуйста подскажите в чем проблема,командой DSADD добавляются контакты, но не в те поля АД. При просмотре контактов в АД после запуска бат-файла, за место емайла стоит телефонный номер и т.д. Вроде должно быть так скрипт просматривает поля файла Cnames.txt занося значение  и присваивая каждому полю переменную начиная с %%c до %%n , по алфавиту. Но у меня он не пашет.
    С кодировкой разобрался, чет в прошлом посте не разобравшись погнал. На виртуалке забыл поменять в настройках на русский, вот отсюда и начались крякозябры, сорри.  
     
    Вот код:

    Код:
    @Echo Off
    SETLOCAL
     
    IF NOT EXIST C:\CNames.txt Goto ShowErr
    FOR %%R IN (C:\CNames.txt) Do IF %%~zR EQU 0 Goto ShowErr
    IF EXIST C:\ContactReport.txt DEL /F /Q C:\ContactReport.txt
     
    SET OUName=OU=ADRESSBOOK,DC=COMPANY,DC=LOCAL
     
    FOR /F "delims=: tokens=1-12" %%c IN (C:\CNames.txt) Do (
          Echo Crerating Contact: %%c
          DSAdd Contact "CN=%%c,%OUName%" -FN "%%d" -LN "%%e" -Display "%%f" -Email "%%g" -Title "%%h" -mobile "%%i" -office "%%j" -fax "%%k" -hometel "%%l" -dept "%%m" -company "%%n" >>C:\ContactReport.txt
    )
     
    Goto EndScript
    :ShowErr
    Echo "C:\CNames.txt" file does not exist or file is empty!
    :EndScript
    ENDLOCAL

    Вот содержимое файл Сnames.txt:
     
    Оспанова Гульден Джетысовна:    Оспанова:    Гульден :    Генеральный директор:    258-44-44    266-55-44  вн. 182:    8 701 721 28 03              8 777355 80 48 :    almatya@globalair-kz.com:    25881:    258-42-59:    260 60 89:
    Давлетова Гузель Асетовна:    Давлетова:    Гузель:    Заместитель директора по административным вопросам:    258-44-44, 266-55-44, вн. 118:    8 777 321 80 66:    guzela@globalair-kz.com:    27890:    258-42-59:    261 96 10:
    Шкловский Лев Михайлович:    Шкловский:    Лев:    Директор по продажам:    258-44-44, 266-44-44, вн. :    8 705 712 76 32                   8 777 355 12 50:    leva@globalair-kz.com:    28435:    258-42-59:    272 27 14:
     
    Вот скрины после добавления контактов в AD:
    Вкладка General - http://www.photoshare.ru/office/image.php?id=5437144
    Вкладка Telephones - http://www.photoshare.ru/office/image.php?id=5437145
    Вкладка Organization - http://www.photoshare.ru/office/image.php?id=5437146
     
     
    Добавлено:
    Все разобрался наконец с этими переменными опытным путем

    Код:
    @Echo Off
    SETLOCAL
     
    IF NOT EXIST C:\CNames.txt Goto ShowErr
    FOR %%R IN (C:\CNames.txt) Do IF %%~zR EQU 0 Goto ShowErr
    IF EXIST C:\ContactReport.txt DEL /F /Q C:\ContactReport.txt
     
    SET OUName=OU=ADRESSBOOK,DC=ASIAINVEST,DC=LOCAL
     
    FOR /F "delims=: tokens=1-13" %%c IN (C:\CNames.txt) Do (
          Echo Crerating Contact: %%c
          DSAdd Contact "CN=%%c,%OUName%" -FN "%%d" -LN "%%e" -Display "%%f" -office "%%g" -Email "%%i" -tel "%%h" -Title "%%l" -mobile "%%k"  -fax "%%j" -hometel "%%m" -dept "%%n" -company "%%o" >>C:\ContactReport.txt
    )
    Goto EndScript
    :ShowErr
    Echo "C:\CNames.txt" file does not exist or file is empty!
    :EndScript
    ENDLOCAL
    :: *** SCRIPT END ***  

    Всего записей: 519 | Зарегистр. 24-02-2009 | Отправлено: 06:58 14-06-2010 | Исправлено: AkeHayc, 08:14 14-06-2010
    ComradG



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Все-таки хочется вернуться к теме времени еще раз и разжевать что к чему.
    time и date имеют фиксированное значение формата H:M:S и D:M:Y, которые не зависят от локали - наличие инвариантной культуры Microsoft для этих тулз не предусмотрела, так что давайте прекратим дискуссии на тему
    Цитата:
    что значит set time=%time:~0,2%:%time:~3,2%:%time:~-5,2%
    и с чем его едят. Вас никто не заставляет использовать именно эту конструкцию, тем более, что время можно обработать и с помощью for:

    Код:
    for /f "tokens="1,2,3 delims=:" %%i in ('time /t') do (
       set hour=%%i
       set mint=%%j
       set secs=%%k
    )
    Тут у кого как фантазия работает. Лично я проверял все это как на осях с буржуйской локалью, так и на русской (которую, к слову, в Германии сложно было достать ) На счет того, безопасно ли переопределять time как-таковую, отвечу - нет. Лучше использовать переменную с другим именем. В противном случае, это может вылиться в конфликт переменных, в худшем случае - переполнении командного буфера (бывает и такое).
    Теперь о справках.
    wolf0425
    Имелась ввиду не присловутая hh ntcmds.chm, а манны по устройству командного интерпретатора от Рихтера. Они правда на английском, но ты, как я понимаю, гутаришь и на оном.
    Уфф! Ну, теперь можно и об остальном.
    Кто сказал, что деинсталлировать приложение для консольщика проблематично? Неправда. Если речь идет о приложениях установленных в систему через MSI, то можно воспользоваться услугами wmic:

    Код:
    wmic product where name="имя_программы" call uninstall

    Или же написать батник. Вот пример того, как можно удалить Opera из системы:

    Код:
    @echo off
    setlocal
    for /f "tokens=7 delims=\" %%i in ('reg query hklm\software\microsoft\windows\currentversion\^
    uninstall ^| findstr /i {') do (
      for /f "tokens=3,*" %%j in ('reg query hklm\software\microsoft\windows\currentversion\^
    uninstall\%%i /v DisplayName ^| findstr /i opera') do (
        msiexec /promptrestart /qb /x %%i /l+*v "%userprofile%\&#9488;RЁ ¤RЄг&#9488;_-вл\opera.log"
        if %errorlevel% eql 1 (
          echo Operation failed. See log for details.
        ) else (
          echo Opera was successfuly removed.
        )
      )
    )
    endlocal
    exit /b

    Батник, который я написал, более гибок в плане того, что если приложение устанавливалось, скажем посредством какого-либо скриптового инсталлятора, то из значений реестра можно извлечь путь до деинсталлятора и инициировать его запуск. А вот wmic, во-первых, требует прав администратора, во-вторых, пока только и умеет, что работать с пакетами MSI.
    Если кому пригодится - скрипт, демонстрирующий как можно узнать использующихся в системе утилит Sysinternals:

    Код:
    @echo off
    setlocal
    set search=reg query hkcu\software\sysinternals
    2>nul %search% > nul
    if %errorlevel%==1 (
      echo No one Sysinternals tool was installed.
      goto:eof
    ) else (
      goto:action
    )
    :action
    set /p action="Show list of installed Sysinternals tools? [y/n] "
    if /i %action%==y (
      for /f "skip=1 tokens=4 delims=\" %%i in ('reg query hkcu\software\sysinternals') do (
        echo %%i
      )
      goto:eof
    ) else if /i %action%==n (
      echo List not build because user skip this option.
      goto:eof
    )
    endlocal
    exit /b

    Сразу отмечу, что скрипт несовершенен хотя бы потому, что оперируюет данными реестра, а не ищет тулзы непосредственно на диске (можно ли такое вообще провернуть без vbs-ки?). И также есть фича: contig, если мне не изменяет память в реестре пишет только букву C (вместо contig), поэтому скрипт должен быть немного обработан напильником. Ну а если кому надо, то могу скинуть vbs или написать батник, который бы создавал оную и запускал на выполнение.

    Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 11:18 14-06-2010
    yurkesha



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ComradG
    Все проверяется экспериментом - так ведь?
    H = вывод без лидирующих нулей - то есть для значений от 0 до 9 мы получим значения от 0 до 9 - без лидирующих нулей.
    HH - два символа всегда -  - то есть для значений от 0 до 9 мы получим значения от 00 до 09 - с лидирующими нулями.
    Ты бы хотя бы проверил прежде чем ввязываться в спор....
     
    Добавлено:
    Так же прошу заметить что ":" не всегда может быть разделителем, как и "." и "/" и "\" и " "...
     
    Добавлено:
    И еще замечу что можно динамически, не перезапуская консоль изменить настройки даты/времени и получить совершенно другой вывод даты и времени...

    ----------
    Всем непричастным рекомендую прогулки на свежем воздухе

    Всего записей: 2741 | Зарегистр. 15-12-2003 | Отправлено: 11:59 14-06-2010
    mugil_cephalus

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

    Цитата:
    А работает с ним потому, что у for какие-то глюки с двойными кавычками, если с них начинается имя команды внутри (' '). если первая команда начинается с буквы/цифры/@ - она опознается замечательно.  


    Код:
    for /f "tokens=*" %%i in ('"%cd%\new\bat.cmd"') do @echo.%%~i

    у меня такое работает...
     
    Добавлено:
    res2001

    Цитата:
    Нарыл на RSDN неплохой мануал по батникам:  
    http://www.rsdn.ru/article/winshell/batanyca.xml

    этот урок прибит в шапке параллельной ветки -  
    Цитата:
    Урок bat-аники (для начинающих)  
    http://forum.ru-board.com/topic.cgi?forum=5&bm=1&topic=33080&start=0
    есть 2-ой урок ( "advanced" ) - http://www.rsdn.ru/article/winshell/NTCommandProcessor.xml
     
    Добавлено:
    Mark_Titov
    p.s.
    а вообще выложено полно готовых скриптов на репозитариях - http://www.robvanderwoude.com/index.html
     и Batch Function Library for Windows NT4/2000/XP/2003

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 12:33 14-06-2010 | Исправлено: mugil_cephalus, 12:58 14-06-2010
    wolf0425



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

    Цитата:
    Тут у кого как фантазия работает. Лично я проверял все это как на осях с буржуйской локалью, так и на русской (которую, к слову, в Германии сложно было достать )
    ппц ComradG отжигает -  в Германии оказывается не продают винды, в которых можно установить американский формат даты, так мы все этому и поверили...

    Цитата:
    и с чем его едят. Вас никто не заставляет использовать именно эту конструкцию, тем более, что время можно обработать и с помощью for:
    Код:
    for /f "tokens="1,2,3 delims=:" %%i in ('time /t') do (
       set hour=%%i
       set mint=%%j
       set secs=%%k
    )
    Тут у кого как фантазия работает.  
    этот пример говорит что с опытом использования time /t  у тебя ещё хуже чем с %date%, только лишь учебники читал.
    фантазия лучше всего работает у Микрософта:
       
    узнать батником заранее в каком формате в системе тебе выведут дату/время (если это не твоя личная система, которую ты вправе под себя настроить) - настолько большой гемморой, что когда настройки неизвестны - для получения даты и времени гораздо проще сразу парсить wmic os get LocalDateTime
     
    А выше по странице разобрано, что даже при обычных русских установках времени конструкция  
    set time1=%time:~0,2%:%time:~3,2%:%time:~-5,2%  
    может иногда получить в time1 время на ~час меньше чем полученное в предыдущей аналогичной строке
    так как событие будет происходить очень редко - то ловить вызванные такой багофичей глюки - весьма веселое занятие.
    Интересно что про конструкцию time1=%time:~0,2%:%time:~3,2%:%time:~-5,2% говорит учебник, на который ты ссылаешься.
     
    Добавлено:
    mugil_cephalus
    Цитата:
    for /f "tokens=*" %%i in ('"%cd%\new\bat.cmd"') do @echo.%%~i
    у меня такое работает...  
    такое-  работает.
    а теперь проверь
    Код:
    for /f "tokens=*" %%i in ('"%cd%\new\bat.cmd" добавим "кавычки"') do @echo.%%~i
    и объясни почему перестает работать.
    И почему снова начинает если @ в начало ещё добавить...

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 12:48 14-06-2010 | Исправлено: wolf0425, 14:37 14-06-2010
       

    Страницы: 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 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 8
    vu1tur (04-09-2010 17:46): http://forum.ru-board.com/topic.cgi?forum=62&topic=21297


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru