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

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

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

evle (19-03-2008 19:44): Лимит страниц.
Задачи на bat-файлах 5
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

vu1tur



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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 15:21 11-09-2007 | Исправлено: Elroir, 01:52 26-02-2008
    01MDM



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

    Код:
     
    dir /b d:\1 | findstr .* >nul && echo Exist || echo not Exist
     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 11:27 30-10-2007
    Smitis



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    KapralBel
    Хотя, если не использовать ключ /r, через findstr короче

    Код:
     
    dir /b/s 1 2>&1 | find "\" > nul && echo Not empty || echo Empty
    dir /b 1 2>&1 | findstr . > nul && echo Not empty || echo Empty
     



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

    Всего записей: 3214 | Зарегистр. 09-02-2003 | Отправлено: 11:36 30-10-2007 | Исправлено: Smitis, 11:38 30-10-2007
    KapralBel



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

    Цитата:
    если не использовать ключ /r

    Не пройдет...
    не обязательно будет файл с точкой в имени (например hosts)

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 11:42 30-10-2007
    01MDM



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

    Цитата:
    не обязательно будет файл с точкой в имени (например hosts)

     
    достаточно findstr .*  
    Это обозначает любой символ
     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 11:45 30-10-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    01MDM
    а я все думал, что рег. выражения только через /r

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 11:53 30-10-2007
    Smitis



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Нифига
     
    /l      Использует заданную строку буквально.
    /r      Использует строку поиска как регулярное выражение.
            Команда Findstr интерпретирует все метасимволы как регулярные
            выражения, если не используется ключ /l.
    .               Подстановочный знак: любой символ
     
    Достаточно найти один символ.
    Но надо не забывать отфильтровывать ошибки dir "File Not Found"
    Вот окончательные варианты:

    Код:
     
    dir /b/s папка 2>&1 | find "\" > nul && echo Not empty || echo Empty
    dir /b папка 2>nul | findstr . > nul && echo Not empty || echo Empty
     

    По длине получилось одинаково!

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

    Всего записей: 3214 | Зарегистр. 09-02-2003 | Отправлено: 11:57 30-10-2007 | Исправлено: Smitis, 12:09 30-10-2007
    01MDM



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

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 12:00 30-10-2007
    AlessTO

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    2 all
    Касаемо моей проблемы удаления дублей (обозначенной тут и тут)
    была перерыта масса..ссылок.. самым быстрым признан php-скрипт

    Код:
    <?php
    file_put_contents('new.txt',implode("",array_unique(file('text.txt'))));
    ?>

    но и он имеет ограничение на размер корректируемого файла (к тому же требует наличия в каталоге дистрибутива php - точнее php.exe и php5ts.dll)
    Остановился на том, что скачал мегашуструю(!!!) утилку - uniqline (кстати, то что находится в этом каталоге - думаю заслуживает того, чтобы быть помещенным в шапку - в Полезные утилиты)
    to Nagual
    тулза пишет напрямую в файл - 36.6 метра за 16 минут! (8 минут - при незагруженном проце)   С++...

    Всего записей: 253 | Зарегистр. 09-12-2006 | Отправлено: 19:56 30-10-2007 | Исправлено: AlessTO, 20:17 30-10-2007
    Tipulatoid



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    all
    Можно ли как-то узнать название подключения к Интернету по умолчанию? в файле rasphone.pbk много чего интересного, но такого параметра я не нашел.
    Т.е. названия там есть, конечно, но параметра что именно это подключение по умолчанию, похоже, что нет

    Всего записей: 349 | Зарегистр. 22-12-2006 | Отправлено: 05:44 31-10-2007 | Исправлено: Tipulatoid, 05:56 31-10-2007
    Maza Faka



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Tipulatoid
    А разве по умолчанию существует подключение к интернету?

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 07:13 31-10-2007
    Tipulatoid



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maza Faka
    Ну, если нажать Пуск -> Подключение  то увидим список подключений, и в иконке одного из них присутствует галочка - это значит, что данное подключение считается подключением по умолчанию
     
    Добавлено:
    Нашел HKCU\Software\Microsoft\RAS Phonebook\DefaultEntry

    Всего записей: 349 | Зарегистр. 22-12-2006 | Отправлено: 07:37 31-10-2007 | Исправлено: Tipulatoid, 07:56 31-10-2007
    GORA2



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как узнать размер каталога со всеми вложенными файлами и подкаталогами?
    Делаю так:
    Код:
    FOR /F "tokens=1-3" %%a IN ('dir "%~1" /-C /S /A:-D') DO (
        IF !flag!==1 SET dirsiz=%%c
        IF "%%b"=="файлов:" (SET flag=1) ELSE (SET flag=0)
    )
    где в переменной %~1 - исследуемый каталог.
    А нет способа попроще?

    Всего записей: 1271 | Зарегистр. 26-01-2006 | Отправлено: 13:44 01-11-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    GORA2
    DirUse C:\Windows
    из Windows Resource Kit

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 13:48 01-11-2007
    GORA2



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KapralBel А без сторонних утилит ни как?

    Всего записей: 1271 | Зарегистр. 26-01-2006 | Отправлено: 14:28 01-11-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    GORA2
    См. свой предыдущий пост
    или  
    Dir C:\Windows /s
    и предпоследняя строка

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 14:48 01-11-2007
    NIKZZZZ



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

    Цитата:
    А без сторонних утилит ни как?

    Не совсем красиво, но можно проанализировать с помощью For результат работы
    compact %catalog%\* /s /q /a
    по строке
    "Данные объемом 1 389 175 286 байт сохранены в 1 389 133 274 байт."
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 15:15 01-11-2007
    GORA2



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZВаш вариант не проще получиться. Мне надо получить результат в переменную и без пробелов, а это лишняя возня.
    Пока оставлю свой.
     
    Всем спасибо.

    Всего записей: 1271 | Зарегистр. 26-01-2006 | Отправлено: 16:26 01-11-2007
    root1976

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите горю!
     Есть файл типа :
    1111_???.123
    необходимо переименовать в:
    00_???W.123
    где ??? трехзначное число которое менять не нужно.
     
     
    Заранее спасибо!!!!!!

    Всего записей: 3 | Зарегистр. 02-11-2007 | Отправлено: 02:00 02-11-2007
    Elroir



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

    Код:
    for /f "tokens=1* delims=_" %%a in ('dir /b /a-d 1111_???.123') do ren "%%a_%%b" "00_%%~nbW%%~xb"
     


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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 02:20 02-11-2007
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    root1976
    если юзаешь тотал командер, то маска переименования будет
    00_[N6-]W

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 02:36 02-11-2007
       

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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 4
    evle (19-03-2008 19:44): Лимит страниц.
    Задачи на bat-файлах 5


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru