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

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

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Сделал с помощью setini, Спасибо
     
    Добавлено:
    Подскажите, плз, еще как в строке "\sgds\dasf\dfsh.ini"(именно такой) убрать имя файла

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



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    sed, конечно, великолепна, однако перевод строки на выходе — никсовый LF
    как известно, в windows стандарт — CR+LF
    неизвестно, насколько корректно такой файл будет читаться другими программами
    интересно, неужели никто не открывает конечный файл простым блокнотом?

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

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

    Код:
     
    set directory=C:\sagaasha\adha\adhfa.ini
    for /f "tokens=*" %%i in ('echo %directory%') do (
        set direct=%%~pi
    )
     
    echo %direct%
     

    Всего записей: 12 | Зарегистр. 06-04-2008 | Отправлено: 00:08 22-09-2008
    AZJIO



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

    Всего записей: 4182 | Зарегистр. 03-05-2006 | Отправлено: 07:28 22-09-2008
    XXLIvan



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    Прошу прощения за нечетко сформулированную задачу.
    Ситуация такая: каждый рабочий день я получаю текстовый файл с произвольный именем, но с раширением *.vb?. Требуется: не указывая батнику конкретного имени этого файла (только расширение (*.vb?), определить в нем дату в формате DD.MM.YYYY, находящуюся на 4 строке, с 7-го символа, а затем данный файл переместить в папку с этой датой, имеющей формат DDMMYYYY.

    Всего записей: 128 | Зарегистр. 15-03-2007 | Отправлено: 07:49 22-09-2008
    01MDM



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

    Цитата:
    неужели никто не открывает конечный файл простым блокнотом?

    Ого, я и правда никогда не открывал в блокноте, a в far'e все выглядит правильно.
     
    XXLIvan

    Цитата:
    Требуется: не указывая батнику конкретного имени этого файла (только расширение (*.vb?)

    Попробуй:

    Код:
     
    @echo off
    setlocal
     
    for %%i in (*.vb) do call:1 "%%i"
    goto:eof
     
    :1
    for /f "skip=3 tokens=3 delims=|" %%i in ('type %1') do set "folder=%%i" && goto:2
     
    :2
    md %folder:.=% 2>nul
    move %1 %folder:.=%
     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 09:27 22-09-2008 | Исправлено: 01MDM, 09:34 22-09-2008
    XXLIvan



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

    Цитата:
    Попробуй:

    Спасибо за помощь...

    Всего записей: 128 | Зарегистр. 15-03-2007 | Отправлено: 10:06 22-09-2008
    01MDM



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

    Цитата:
    Спасибо за помощь...

     
    Все нормально? Можно легко переделать и под 7-ой символ.  
     

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



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    Да, все работает замечательно... Еще раз спасибо за помощь...

    Всего записей: 128 | Зарегистр. 15-03-2007 | Отправлено: 05:58 23-09-2008
    Cheerful_a_bear



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Народ сил нет ужу подскажите как в папке с подпапками с не ограниченной глубиной найти все файлы с расширением txt и скопировать его в другую папку...
     
    Заранее спасибо...

    Всего записей: 103 | Зарегистр. 30-04-2008 | Отправлено: 13:48 23-09-2008
    Elroir



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

    Цитата:
    как в папке с подпапками с не ограниченной глубиной найти все файлы с расширением txt и скопировать его в другую папку

    Предположим, что "папка с подпапками" - это c:\temp, a скопировать нужно в d:\temp

    Код:
     
    @echo off
    for /r "c:\temp" %%a in (*.txt) do copy /y "%%a" "d:\temp\">nul
     


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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 14:36 23-09-2008
    GGS



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

    Всего записей: 1000 | Зарегистр. 25-03-2002 | Отправлено: 15:19 23-09-2008
    winvik



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    подскажите пожалуйста... bat-файл хочу поместить в автозагрузку, но его запуск нужно производить, к примеру, через 5 мин после загрузки системы (когда отработают доменные скрипты и комп полностью загрузится). Как это сделать? Можно ли в самом bat-файле написать задержку запуска и указать время?

    Всего записей: 10 | Зарегистр. 07-03-2007 | Отправлено: 15:50 23-09-2008
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    winvik
    юзай планировщик, ссылку на приличную статью приводил чуть ранее, можешь им отследить отсутствие (наличие) запущенного процесса и после этого выполнять задачу, в общем,

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

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

    Цитата:
    Можно ли в самом bat-файле написать задержку запуска и указать время?  

    В шапке

    Цитата:
    Альтернативные решения »  


    Цитата:
    Делаем паузу в командном файле стандартными средствами Windows  


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

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

    Код:

    @ECHO OFF
     
    FOR /F "TOKENS=2,10-11" %%A IN ('CMDOW.EXE /p') DO IF "%%A"=="0" (SET "WIDTH=%%B" & SET "HEIGHT=%%C")
    ECHO Current computer resolution is %WIDTH%x%HEIGHT%  

     
    cmdow.exe в шапке, в "Полезных утилитах"
     

    Всего записей: 1667 | Зарегистр. 08-12-2004 | Отправлено: 17:44 23-09-2008 | Исправлено: igor_andreev, 17:45 23-09-2008
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO
    проверь название сценария
    кинь сюда пример, как удаляешь

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



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

    Цитата:
    Не понятна закономерность создания каталогов.

    иерархическая:
    корневой каталог
    01 - подгруппа, входящая в корневой каталог
    01-1 - подгруппа, входящая в подгруппу 01
    01-1-01 - подгруппа, входящая в подгруппу 01-1
    01-1-01-01 - подгруппа, входящая в подгруппу 01-1-01
    01-1-01-02 - подгруппа, входящая в подгруппу 01-1-01
    01-1-01-03 - подгруппа, входящая в подгруппу 01-1-01
    02
    02-01
    02-01-01
    02-01-02
    02-01-02-01
    02-01-02-02
    и т.д.
    исходный файл с группами/подгруппами - любой текстовыый файл или excel
     
    KapralBel

    Цитата:
    И как часто это надо делать?

    не часто, но если учесть, что кол-во групп/подгрупп (папок) составляет порядка 11 000 то руками - ой как грустно будет

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

    Всего записей: 4228 | Зарегистр. 02-09-2001 | Отправлено: 00:48 24-09-2008 | Исправлено: Solenaja, 00:49 24-09-2008
    igor_andreev

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

    Цитата:
    02-01-01  
    02-01-02  
    02-01-02-01  
    02-01-02-02  
    и т.д.  

    Честно говоря, я например закономерность все равно не понял Куда делись 02-1,02-1-01...
    А есть уже папка с созданной такой структурой 11-ти тыщщ поддиректорий? Тогда можешь просто, будучи в корневой папке, записать список папок в файл

    Код:
     
    for /r /d %a in (*) do echo "%~fa">>c:\dirroot.txt
     

    и потом, когда нужно создавать из файла

    Код:
     
    for /f %a in (dirroot.txt) do md %a
     

    Ну там может букву диска подправить в dirroot.txt, или вместо %~fa использовать %~pa, смотря где эту кучу директорий разворачивать будешь.

    Всего записей: 1667 | Зарегистр. 08-12-2004 | Отправлено: 01:20 24-09-2008 | Исправлено: igor_andreev, 01:25 24-09-2008
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Solenaja
    Код:
    for /l %%a in (1,1,9) do ^
    for
    /l %%b in (1,1,9) do ^
    for
    /l %%c in (1,1,9) do ^
    for
    /l %%d in (1,1,9) do ^
    for
    /l %%e in (1,1,9) do ^
    for
    /l %%f in (1,1,9) do ^
    for
    /l %%g in (1,1,9) do ^
    for
    /l %%h in (1,1,9) do (
    @echo
    md 0%%a\0%%b\0%%c\0%%d\0%%e\0%%f\0%%g\0%%h)
    хватит глубины вложенности 8?
    если нет, дописывай еще )))

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 02:14 24-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