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

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

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

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 13:37 14-06-2010
    wolf0425



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

    Цитата:
    так и верно, что не работает - %cd% - не команда  
    зато "%cd%\new\bat.cmd" - команда
    упростим вопрос:

    Код:
    for /f "tokens=*" %%i in ('"bat.cmd" c параметрами') do @echo.%%~i  
    for /f "tokens=*" %%i in ('"bat.cmd" c "параметрами"') do @echo.%%~i  
    for /f "tokens=*" %%i in ('@"bat.cmd" c "параметрами"') do @echo.%%~i  
    почему во втором варианте идет ругань на неправильную команду

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

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

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

    G:\scripts\TEST\te st>for /F "tokens=*" %i in ('""G:\scripts\TEST\te st\new\bat.cmd" ^|find /i "g""') do echo.%~i
     
    G:\scripts\TEST\te st>echo.G:\scripts\TEST\te st>echo.hi_g
    G:\scripts\TEST\te st>echo.hi_g
     
    G:\scripts\TEST\te st>echo.hi_g
    hi_g
     
    G:\scripts\TEST\te st>echo.G:\scripts\TEST\te st>echo.bye_g
    G:\scripts\TEST\te st>echo.bye_g
     
    G:\scripts\TEST\te st>echo.bye_g
    bye_g
     
    G:\scripts\TEST\te st>pause
    Для продолжения нажмите любую клавишу . . .

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mugil_cephalus что ты своим примером сказать то хотел? ты расскажи почему мой не работает.
    Или в своем добавь кавычки в командную строку первой команды, а не в пайп.
     
    Добавлено:
    хотя работает, да...

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

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

    Цитата:
    почему во втором варианте идет ругань на неправильную команду

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

    Цитата:
    for /f "tokens=*" %%i in ('""bat.cmd" c "параметрами""') do @echo.%%~i  

     

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



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

    Цитата:
    то заработает, попробуй -  
    да я как бы уже попробовал и выше отписался
    занятно парсит - под общие кавычки можно вставить скобки '"(echo.)"' но нельзя эти скобки сделать многострочными. А жаль

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

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

    Цитата:
    занятно парсит - под общие кавычки можно вставить скобки '"(echo.)"' но нельзя эти скобки сделать многострочными. А жаль  

    wolf0425, т.е. в моем примере вот такой вариант?

    Код:
    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 | Отправлено: 14:53 14-06-2010
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    WesternLight получается
    кто бы мне ещё объяснил почему
    Код:
    for /f "delims=" %%a in ('""%CD%\reg.exe" query "HKCU\Console" ^| findstr.exe /b /i /r HKEY_CURRENT_USER\\Console\\. "') do echo "%CD%\reg.exe" delete %%a /f  
    не работает, а
    Код:
    for /f "tokens=*" %%i in ('""bat.cmd" c "параметрами" ^|find /i "g""') do echo.%%~i  
    - работает

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425, yurkesha
    Я никогда ни с кем не спорю, тем более, что речь не шла о локалях. Я говорил об ИНВАРИАНТНОЙ КУЛЬТУРЕ. Впрочем, если вы далеки от мира программирования, то не стоит объяснять что это и с чем ее едят. Тем более, что по умолчанию в любой винде принят стандарт XX:XX:XX, так что я не "отжигаю", как вы изволили выразиться батенька, я констатирую факт. И потом, кто на русскоязычном сайте будет писать батник, который бы устанавливал локаль аглицкую, а затем пытался что-то выполнить. Нонсенс, да и только. И потом, что это за дурацкая черта набрасываться всем снопом? Помните у Шварца из обыкновенного чуда: "Если хочешь указать на ошибки - сперва похвали..." Убеждать вас в правоте своих слов о стандартах, еще раз подчеркну, что локаль и стандарт - две разные вещи, как понимаю не имеет смысла, поэтому дабы все мы не превращали форум в обычный флейм, давайте прекратим сии дискуссии и займемся делом, даже если каждый из нас друг друга так и не понял.
     
    Скрипт показывающий версию DirecX (затачивался под XP, так что дорабатывайте что к чему сами):

    Код:
    @echo off
    setlocal
    set str=Current version of DirectX is
    for /f "skip=2 tokens=3,*" %%i in ('reg query hklm\software\microsoft\directx /v version') do (
      set ver=%%i
    )
    if "%ver%"=="4.08.00.0400" (
      echo %str% 8.0
    ) else if "%ver%"=="4.08.01.0810" (
      echo %str% 8.1
    ) else if "%ver%"=="4.08.01.0881" (
      echo %str% 8.1
    ) else if "%ver%"=="4.09.00.0900" (
      echo %str% 9.0
    ) else if "%ver%"=="4.09.00.0901" (
      echo %str% 9.0a
    ) else if "%ver%"=="4.09.00.0902" (
      echo %str% 9.0b
    ) else if "%ver%"=="4.09.00.0904" (
      echo %str% 9.0c
    )
    endlocal
    exit /b

    Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 15:57 14-06-2010 | Исправлено: ComradG, 16:00 14-06-2010
    wolf0425



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

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

    Цитата:
    . Тем более, что по умолчанию в любой винде принят стандарт XX:XX:XX
    ну если для вас термин "любая винда" - равноценен "любая русская винда с настройками по умолчанию, точно как у вас" и не включает "американская винда с настройками по умолчанию для американца" - то дальше говорить не о чем.

    Цитата:
    И потом, кто на русскоязычном сайте будет писать батник, который бы устанавливал локаль аглицкую, а затем пытался что-то выполнить. Нонсенс, да и только.
    обычно батник локаль никакую не устанавливает - он должен работать с той локалью, с которой его запустили. Или иметь в описании уточнение что он локалезависим.
    Если вам, батенька, кажется, что у всех русскоговорящих - обязательно русская локаль на всех системах на которых они работают, то вы, батенька, глубоко заблуждаетесь.
    Американских программистов всего-то за полпоколения в массе удалось научить, что бывают настройки локали отличные от лучшей в мире американской. Осталось научить русских программистов, что разные настройки локали - бывают
     

    Цитата:
    Скрипт показывающий версию DirecX (затачивался под XP,
    вы, батенька, забыли дописать - а кто этот скрипт у вас просил.  
    А то ведь человек не найдет, увидев в шапке обращение к wolf0425, yurkesha
    Кстати, увидев что ваш скрипт ничего не вывел - человек наверно должен решить что у него DirectX вообще никакой не установлен? или он все же сообразит что программист, писавший скрипт - криворукий, про существование остальных версий DirecX не знающий?

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

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Просто чел из дойчланда не в курсе, что у нас не только русские винды есть, а таже есть жвачка и джинсы.  

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 19:23 14-06-2010
    ComradG



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

    Цитата:
    то у нас не только русские винды есть, а таже есть жвачка и джинсы

    Это русская ментальность или в России все действительно стало так плохо?
    P.S.(Напоследок)Скрипт DirectX рабочий, просто 4.09.00.0904 иногда в системах прописывается как 4.09.0000.0904. Ну а если у тебя просто проблемы, то пора обратиться за квалифицированной помощью.
    Ich fahre auf...

    Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 19:48 14-06-2010 | Исправлено: ComradG, 19:50 14-06-2010
    wolf0425



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

    Цитата:
    P.S.(Напоследок)Скрипт DirectX рабочий
    да никто не сомневается.
    просто скрипт может запросто ничего не написать несмотря на наличие установленного и рабочего DirectX, проблема очевидна, можно хоть как пример для новичков использовать - как детские ошибки программиста.

    Цитата:
    иногда в системах прописывается как 4.09.0000.0904.
    до тебя так и не дошло, что это далеко не единственный вариант возможной неработы
     

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

    Цитата:
    После того, как я дословно перевел своим немецким коллегам пост wolf0425 - немцы ржали час
    если бы ты шведам или финам перевел - они бы ржали два часа

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ComradG
    Цитата:
    тем более, что речь не шла о локалях. Я говорил об ИНВАРИАНТНОЙ КУЛЬТУРЕ. Впрочем, если вы далеки от мира программирования
    не опознать маску формата вывода(в вашей ситуации) - куда уж дальше...
     
    wolf0425
    Цитата:
    если бы ты шведам или финам перевел - они бы ржали два часа
    все-таки ты ошибаешься - он также ржали бы час. Но через два часа
     
     
    Добавлено:
    Ну и на всякий случай выдержка из помощи по записи формата времени.

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

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

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

    Цитата:
    все-таки ты ошибаешься - он также ржали бы час. Но через два часа  

     
     
    Добавлено:
    ComradG

    Цитата:
    Это русская ментальность или в России все действительно стало так плохо?  

    да, жевачку и джинсы опять запретили - ты cnn не смотришь?
    если серьезно, в россии не бывает плохо - бывают плохие люди, также как и заграницей (без аллюзий)
    G. Marshall сделал свое дело...  

    Цитата:
    После того, как я дословно перевел своим немецким коллегам пост wolf0425 - немцы ржали час

    а ты их не спросил - над чем они ржали - может они тв в этот момент смотрели, а ты тут со своей распечаткой солировал...
    Ja, der Schwierigkeit der ubersetzung...

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 09:26 15-06-2010 | Исправлено: mugil_cephalus, 10:42 15-06-2010
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Правда, лежачего не бьют, но
    http://forum.ru-board.com/topic.cgi?forum=5&topic=24422&start=120#12

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 10:20 15-06-2010
    mugil_cephalus

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    king_stiven
    http://forum.ru-board.com/topic.cgi?forum=5&topic=33080&start=420#15

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

    http://forum.ru-board.com/topic.cgi?forum=62&topic=19668&start=1640#11
     
    Автор: Artem_Butenko, Отправлено: 01:15 29-07-2008  Уважаемый ComradG называть любое стремление к творчеству ерундой, крайне грубо с Вашей стороны. Причем я не первый, кого Вы ненароком задели за живое. А теперь к сути моего предыдущего вопроса.
    ............................
    Автор: ComradG, Отправлено: 22:14 29-07-2008  Цитата: ("и я не в танке!!!!!") Увы, но как раз наоборот. В самой винде даже при отсутсвии определенного скина можно рисовать умопомрачительные интерфейсы как для инсталлеров, так для приложений. Если ты не сталкивался с С++, наверное, с моей стороны это будет литьем воды и  рассказывать тебе че к чему, так что хочешь подробностей пиши в личку. Отвечу. Тем более, что уже в сентябре-октябре я выложу свою программку написанную для инно - очень смахивает на визуальную среду разработки с базой данных. Но так как мне все наотрез отказались (исключая Dobrov и Kindly) помогать, то... сам понимаешь.  
    ..................................
    Artem_Butenko Цитата: О каких ресурсах ОС (которые можно использовать в качестве скина для Inno) Вы говорите? -- забудь. Просто очередной бред от человека, который плохо знает инно и плохо разбирается в программировании, но считает себя крутым програмером и крутым , ну очень крутым хакером. Конечно, это мое имхо. Но оно имеет под собой вполне реальные основания. А переубедить меня очень просто - достаточно выложить в общий доступ хоть что-то из этих хваленых реализаций для инно.  
     
    Автор: Victor_Dobrov, Отправлено: 02:25 30-07-2008  ComradG Цитата: уже в сентябре-октябре я выложу свою программку написанную для инно - очень смахивает на визуальную среду разработки с базой данных. ComradG - Какого года? 2020-го? Обещаниями можете разбрасываться в парламенте, а здесь это не проходит. Кроме того, вы явно не знакомы с правилами форума, так как большинство ваших сообщений не информативны и адресуются неизвестно кому.  
     
    http://ruboard.su/Computers/Soft/27438_9.html#

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 10:23 15-06-2010 | Исправлено: mugil_cephalus, 11:12 15-06-2010
    yurkesha



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

    Цитата:
    Правда, лежачего не бьют, но  

    на правах полного - почитал приведенные материалы - навеяло: а разве Нижний Тагил находится в Германии?!


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

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

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

    Цитата:
    Это русская ментальность или в России все действительно стало так плохо?  

    p.s.
    и если это тезка "нашего" ComradG - я публично извинусь
    ладно еще вначале были оценочные характеристики личностные, так теперь пошел шовинизм по социально-групповому признаку

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 13:39 15-06-2010 | Исправлено: mugil_cephalus, 13:45 15-06-2010
    joker56

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, может уже был такой вопрос, где искать ответ?
    На компьютере под WIN XP работает программа и примерно раз в минуту меняет содержимое LOG-файла в папке с известным именем, допустим C:\1, значит меняется и размер этой папки.  Командой DIR C:\1 можно поместить эту информацию в текстовый файл, в одной из строк которого находится информация о размере папки. А может нужна не команда DIR, а какая-то другая. Из bat-файла нужно периодически анализировать изменение размера папки и в результате этого осуществлять переход на вызов одного или другого EXE-файла, уже находящих на компьютере. Похоже строк не много, но я практически не владею синтаксисом, может кто-нибудь помочь?

    Всего записей: 3 | Зарегистр. 15-06-2010 | Отправлено: 16:36 15-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