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

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

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

vu1tur (04-11-2008 23:07): Задачи на bat-файлах 6  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

Nagual



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

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

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

  • Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 12:28 19-03-2008 | Исправлено: Nagual, 01:02 24-09-2008
    Solenaja



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    igor_andreev
    директории нет, поэтому и надо создавать - так бы Tatalcmd запросто былобы
     

    Цитата:
    Честно говоря, я например закономерность все равно не понял  Куда делись 02-1,02-1-01...

    как куда?!
    смысл же такой же как и для 01
    01 - подгруппа, входящая в корневой каталог  
    01-1 - подгруппа, входящая в подгруппу 01  
    01-1-01 - подгруппа, входящая в подгруппу 01-1  
    01-1-01-01 - подгруппа, входящая в подгруппу 01-1-01
     
    Добавлено:
    Nagual

    Цитата:
    хватит глубины вложенности 8?

    в том то и дело, что не знаю, тк она не определена
    что означает (1,1,9) ?
    ты предлагешь 11 тыс строк руками переписывать, я же не знаю сколько групп будет в подгруппах?
     
    чувствую нужно искать спец. софтину для этого

    ----------
    Могу помочь, но только своими знаниями и ...

    Всего записей: 4228 | Зарегистр. 02-09-2001 | Отправлено: 14:40 24-09-2008
    sarti



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Такая задачка: после каждого сеанса dial-up (WS2003SP2+RRAS, модем 56k настроен на "Accept Incoming Connections") нужно рестартовать (net stop & start) службу "Routing and Remote Access" (странный глюк какой-то: служба - пашет, в логах - чисто, но на деле без рестарта может принять лишь один звонок, после дисконнекта входящие не принимает, молчит и всё).
    Можно, конечно, поставить суточный рестарт по времени. Или регулярный рестарт в течение суток. Но хотелось бы по-человечески: подключился, поработал, отключился, служба сама рестартанула, спустя некоторое время опять спокойно подключился, без выезда на место.
     
     
    Так вот, возможно ли как-то повесить выполнение батника с "net stop" и "net start" на окончание dial-up сеанса, или это из разряда несбыточных надежд?

    Всего записей: 1972 | Зарегистр. 04-08-2006 | Отправлено: 15:26 24-09-2008 | Исправлено: sarti, 15:30 24-09-2008
    kenneth

    Newbie
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Чистка профиля пользователя при выходе (NT 5.0/5.1)
    Что _не_ делает:
    1) Корзину не чистит;(
    2) не дезактивирует кнопку "Очистить список" для Recent (не нашел нужный ключ в реестре...);
    3) Explorer все-таки помнит старые значения ключей (последние файлы и последние программы) до следующего обращения к реестру (после выхода или запуска любой программы через ["Пуск"] забывает);
    4) IE, однако, "вспоминает" адреса даже после удаления папок History (опять реестр?).
     
    Если кто знает, как улучшить, просьба посоветовать

    Код:
    @ECHO OFF
    DEL /Q "%USERPROFILE%\Cookies\*.*"
    FOR /F "tokens=*" %%i IN ('DIR "%USERPROFILE%\Local Settings\Temporary Internet Files\Content.IE5" /AD /B') DO RMDIR /S /Q "%USERPROFILE%\Local Settings\Temporary Internet Files\Content.IE5\%%i"
    DEL /Q /S "%USERPROFILE%\Local Settings\Temporary Internet Files\Content.MSO\*.*"
    FOR /F "tokens=*" %%i IN ('DIR "%USERPROFILE%\Local Settings\Temporary Internet Files\Content.MSO" /AD /B') DO RMDIR /S /Q "%USERPROFILE%\Local Settings\Temporary Internet Files\Content.MSO\%%i"
    FOR /F "tokens=*" %%i IN ('DIR "%USERPROFILE%\Local Settings\History\History.IE5" /AD /B') DO RMDIR /S /Q "%USERPROFILE%\Local Settings\History\History.IE5\%%i"
    DEL /Q /S "%TEMP%\*.*"
    FOR /F "tokens=*" %%i IN ('DIR "%TEMP%" /AD /B') DO RMDIR /S /Q "%TEMP%\%%i"
    FOR /F "tokens=*" %%i IN ('DIR "%USERPROFILE%\Recent" /A-H /B') DO DEL /Q "%USERPROFILE%\Recent\%%i"
    REG DELETE HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs /F
    REG DELETE HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU /F
    REG DELETE HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist /F
    REG ADD HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist /F

    Добавлено:
    М-м... уже знаю, как улучшить: HKCU\Software\Microsoft\Internet Explorer\TypedURLs и

    Код:
    pushd %temp%
    rmdir /s /q .
    popd

    Но все равно код громоздкий, и IE адреса все равно "вспоминает". Откуда?!

    Всего записей: 18 | Зарегистр. 08-12-2007 | Отправлено: 16:10 24-09-2008 | Исправлено: kenneth, 17:17 24-09-2008
    Cheerful_a_bear



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir
     
    @echo off  
    for /r "c:\temp" %%a in (*.txt) do copy /y "%%a" "d:\temp\">nul  
     
    Огромное спасибо!!! Вы в который раз помогаете...
     
    Есть еще одна просьба, как эти файлы собрать в один txt???

    Всего записей: 103 | Зарегистр. 30-04-2008 | Отправлено: 21:51 24-09-2008
    Nagual



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

    Цитата:
    в том то и дело, что не знаю

    как ты собираешься решать задачу, если нет исходных данных?
    честно говоря, структура и смысл создания такого количества каталогов немного неясна
    думаю, что человек может легко запутаться в 11к папках)
    1,1,9 согласно for/?
    начальное значение, шаг и конечное значение переменной

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 23:59 24-09-2008
    Solenaja



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

    Цитата:
    как ты собираешься решать задачу, если нет исходных данных?

    речь идёт об исходных данных - они есть и это 11  тыс строк номенклатурного кода: групп/подгрупп/товар
    они могут меняться поэтому я и пишу что исходные данные непоределены окончательно, т.е. меняются, т.е. это не разовая процедура создания папок

    Цитата:
    думаю, что человек может легко запутаться в 11к папках
    человек - да, скрипт - нет, тк он будет брать данные из этих папок


    ----------
    Могу помочь, но только своими знаниями и ...

    Всего записей: 4228 | Зарегистр. 02-09-2001 | Отправлено: 01:38 25-09-2008
    Elroir



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

    Цитата:
    как эти файлы собрать в один txt???


    Код:
     
    set /p=<nul>onebigfile.txt
    for %%a in (d:\temp\*.txt) do copy onebigfile.txt /a + "%%a" /a onebigfile.txt>nul
     


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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 02:46 25-09-2008
    Solenaja



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

    Код:
    исходный код
    ...
    02  
    02-01  
    02-01-01  
    02-01-02  
    02-01-02-01  
    02-01-02-02
    ...
    и т.д.

     

    Код:
    результат
    02-01-02-01 и  
    02-01-02-02
    переместить в 02-01-02
     
    02-01-01 и
    02-01-02  
    переместить в 02-01
     
    02-01
    переместить в 02


    ----------
    Могу помочь, но только своими знаниями и ...

    Всего записей: 4228 | Зарегистр. 02-09-2001 | Отправлено: 10:52 25-09-2008 | Исправлено: Solenaja, 10:54 25-09-2008
    ildar1



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Уважаемые специалисты, вот кусок кода, возвращающий текущее время в формате ЧЧ:ММ:СС:
     
    set TIME1=%TIME%
     
    set TIME1=%TIME1:~0,-3%
     
    Но если время до 10 утра, то возвращается время в формате Ч:ММ:СС, как сделать автодобавление лидирующего нолика к часам?

    Всего записей: 271 | Зарегистр. 23-12-2005 | Отправлено: 13:18 25-09-2008
    01MDM



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

    Код:
     
    set time1=%time: =0%
    set time1=%time1:~0,-3%
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 14:32 25-09-2008 | Исправлено: 01MDM, 14:33 25-09-2008
    Accessor



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Народ, помогите, плиз, что-то я туплю. Срочно надо сделать вот такое, а оно не работает, каталоги не создаются
    Код:
    for /L %%i in (0,1,2) do (
    set var=c%%i
    mkdir %var%
    )
     

    Всего записей: 2861 | Зарегистр. 31-10-2003 | Отправлено: 14:53 25-09-2008
    01MDM



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

    Код:
     
    for /L %%i in (0,1,2) do mkdir c%%i  
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 15:05 25-09-2008
    ildar1



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    Гран мерси! Все взетело как надо и файлы сортируются по порядку!

    Всего записей: 271 | Зарегистр. 23-12-2005 | Отправлено: 15:14 25-09-2008
    UncleGluk



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

    Всего записей: 16 | Зарегистр. 05-03-2003 | Отправлено: 20:34 25-09-2008
    Smitis



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

    Цитата:
    Подскажите, кто знает, как в батнике ответить утвердительно на вопрос любой консольной программы? Например, программа запрашивает " Продолжать (Y/N)? "  
    Хотелось бы воткнуть в поток символ - "Y",  чтоб программа далее выполняла себя.  

    Иногда помогает так:
    echo y| программа


    ----------
    Разум когда-нибудь победит

    Всего записей: 2409 | Зарегистр. 09-02-2003 | Отправлено: 23:41 25-09-2008
    avkorets



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    чот тупняк..
    Как записать первые N строк из файла а в файл b?

    Всего записей: 81 | Зарегистр. 09-09-2008 | Отправлено: 11:35 26-09-2008
    Elroir



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

    Код:
     
    @echo off
    setlocal enabledelayedexpansion
    set "N=17"
    set "count=0"
    for /f "tokens=*" %%a in (first_file.txt) do (
    if !count! GEQ !N! goto :EOF
    echo %%a>>second_file.txt
    set /a "count+=1"
    )
     

    Если в исходном файле есть спец. символы - могут быть проблемы

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 15:52 26-09-2008
    Lexys

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Такой вопрос. Как батником можно удалить все настройки Outlook? Учетки и запись о месте хранения файла данных? Или подставить стандартное место хранения файлов?

    Всего записей: 118 | Зарегистр. 10-05-2006 | Отправлено: 16:22 26-09-2008
    avkorets



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

    Цитата:
    Elroir

    Спасиб...правда я нашел другую версию после получасового поиска =)
     

    Код:
     
    set count=0
    for /f "skip=2 tokens=*" %%a in (%file_name%) do (
       set /a count=!count!+1
       if /i !count! leq N echo %%a>>new.txt
    )
     

    одно и тожа впринципе.
    Спасибо за ответ еще раз.

    Всего записей: 81 | Зарегистр. 09-09-2008 | Отправлено: 18:31 26-09-2008
    king_stiven

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

    Цитата:
    одно и тожа впринципе.  

    отнюдь, твой вариант в случае большого файла долго будет работать.

    Всего записей: 2167 | Зарегистр. 17-07-2006 | Отправлено: 19:28 26-09-2008
       

    Страницы: 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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 5
    vu1tur (04-11-2008 23:07): Задачи на bat-файлах 6


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

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.Board
    © Ru.Board 2000-2020

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru