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

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

    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    igor_andreev
    Посмотрел, вроде ничего
    Выдает список с подробной инфой по файлам в формате
    Подробнее...
    Сама прога умеет скачить только по файлово и то в том случае, если разрешить вручную (жмякая Y)
    Нужна помощь, либо как то в цикле бежать по полученному результату, выберая необходимые имена файлов, либо же как то автоматом указывать ему ответ Y

    Всего записей: 1282 | Зарегистр. 04-01-2003 | Отправлено: 02:34 13-03-2008
    igor_andreev

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

    Цитата:
    Нужна помощь, либо как то в цикле бежать по полученному результату, выберая необходимые имена файлов,

    Уже 400 страниц на ru-board этим и занимаются, гоняют команду FOR в хвост и в гриву

    Код:

    zipweb -f url | findstr "Filename: CRC-check:" | sed "N;s/\n/ /" | find "ERROR"

     
     
    Добавлено:
    sed "N;s/\n/ /" - это склеить каждые две строки.

    Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 13:19 13-03-2008
    VitAll2013

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Надо бат файл который сканирует все диски на наличие файлов file.exe потом выбирает самый последний из них (по дате создания), сохраняет путь до него (например С:\Folder\1\file.exe), затем откусывает от него с конца например 10 символов и создаёт переменную way_for_install. Знаю только чтопоследнее можно реализовать через set way_fo_install =...

    Всего записей: 17 | Зарегистр. 12-02-2006 | Отправлено: 15:14 13-03-2008 | Исправлено: VitAll2013, 15:16 13-03-2008
    Nicka_Grey

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

    Всего записей: 1282 | Зарегистр. 04-01-2003 | Отправлено: 16:10 13-03-2008
    king_stiven

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

    Цитата:
    потом выбирает самый последний из них (по дате создания)

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

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 19:46 13-03-2008
    gbcfkf



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    День добрый
    Подскажите что надо дописать, чтобы при запуске батника
    start file_reestra.reg
    не нужно было отвечать на подтверждение о внесении записи в реестр?
     
    Maza Faka
    Спасибо

    Всего записей: 702 | Зарегистр. 17-10-2006 | Отправлено: 05:03 14-03-2008 | Исправлено: gbcfkf, 07:16 14-03-2008
    Maza Faka



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

    Код:

    @echo off
    start /wait regedit.exe /s "c:\file_reestra.reg"

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 06:55 14-03-2008
    VitAll2013

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    king_stiven
     
    Меня устроит и до даты, если до минуты то это просто офигенно.
     
    Я не силён в батописании, подмогните кому интересно. Для инсталяторов такой батник нужен, когда программа не оставляет в реестре записи о том где и когда она установлена. Другим, уверен, пригодилось бы.

    Всего записей: 17 | Зарегистр. 12-02-2006 | Отправлено: 07:06 14-03-2008
    Maza Faka



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

    Цитата:
    Для инсталяторов такой батник нужен, когда программа не оставляет в реестре записи о том где и когда она установлена.

    Сделай снимок реестра до установки программы и после, затем сравнивай их.

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 07:48 14-03-2008
    VitAll2013

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

    Всего записей: 17 | Зарегистр. 12-02-2006 | Отправлено: 11:17 14-03-2008
    storm2005

    Newbie
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Две задачки.
     
    1.Есть каталог в котором много файлов  созданных за различный промежуток времени. Необходимо в данном каталоге создать каталоги соответствующие датам создания файлов год_месяц_число. Далее переместить файлы с определенной датой создания в соответствующий каталог.
     
    2.Каждый день создавать  каталог с текущей датой и помещать в него файлы с текущей датой.

    Всего записей: 15 | Зарегистр. 18-02-2006 | Отправлено: 18:37 14-03-2008 | Исправлено: storm2005, 18:38 14-03-2008
    king_stiven

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

    Код:
    @echo off
    for %%b in (c d e f g h j) do (
        cd /d %%b:\
        for /r %%c in (.) do (
            cd /d %%c
            for /f "usebackq tokens=1,2,3,4,5,6* delims=.,:, " %%d in (`dir /t:c /a:-d`) do if "%%j"=="file.exe" (
                set "file=%%j"
                call :qwe %%f%%e%%d 1%%g%%h
            )
        )
    )
    set end=yes
    call :qwe
    echo %way_fo_install%
    pause
    goto :eof
    :qwe
    if "%1" GTR "%t1%" (
        set "way_fo_install=%cd%\%file%"
        set t1=%1
        set t2=%2
    ) else if "%1"=="%t1%" (
        if "%2" GTR "%t2%" (
            set "way_fo_install=%cd%\%file%"
            set t1=%1
            set t2=%2
        )
    )
    if defined end set way_fo_install=%way_fo_install:~0,-10%

    небыстро работает, зависит от показа формата времени
    (c d e f g h j) перечисляй буквы дисков

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 20:04 14-03-2008
    Elroir



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

    Код:
    for %a in (*.*) do echo %~ta

    и выложи сюда хотя бы одну строчку из вывода (строчку с показом даты и времени)

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 00:10 15-03-2008
    king_stiven

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

    Код:
    @echo off
    chcp 1251 > nul
    set file=file.exe
    for %%b in (c d e f g h) do (
        cd /d %%b:\
        for /f "usebackq tokens=1,2* delims= " %%c in (`dir "%file%" /t:c /a:-d /s`) do (
            if "%%c%%d"=="Содержимоепапки" (
                cd /d "%%e"
            ) else (
                for /f "tokens=1,2,3,4,5,6* delims=.,:, " %%f in ("%%c %%d %%e") do if "%%l"=="%file%" (
                    call :qwe %%h%%g%%f 1%%i%%j
                )
            )
        )
    )
    set end=yes
    call :qwe
    echo %way_fo_install%
    pause
    goto :eof
    :qwe
    if "%1" GTR "%t1%" (
        set "way_fo_install=%cd%\%file%"
        set t1=%1
        set t2=%2
    ) else if "%1"=="%t1%" (
        if "%2" GTR "%t2%" (
        set "way_fo_install=%cd%\%file%"
            set t1=%1
            set t2=%2
        )
    )
    if defined end set way_fo_install=%way_fo_install:~0,-10%

    Работает быстро, под русскую винду, зависит от показа формата времени.
     

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 02:06 15-03-2008 | Исправлено: king_stiven, 10:16 17-03-2008
    MazayK

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Обращаюсь к специалистам.
    В локальной сети 4 компьютера, поключённые к коммутатору. Необходимо с одного из них разрешать или запрещать ТОЛЬКО ВЫХОД в Интернет определенному компу. В локальной сети он должен оставаться всегда. Можно ли решить такой вопрос на командных файлах?! Если такое обсуждалось, то, пожалуйста, дайте ссылку.
    Очень благодарен.

    Всего записей: 35 | Зарегистр. 30-12-2006 | Отправлено: 06:45 15-03-2008
    Maza Faka



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

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 08:34 15-03-2008
    MazayK

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

    Всего записей: 35 | Зарегистр. 30-12-2006 | Отправлено: 09:49 15-03-2008
    Omul2



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите плиз, как можно сделать условие, сравнив два файла по дате создания или изменения, например если файл A новее файла Б - делаем то-то, если нет - другое. Голову уже сломал. Спасибо. Файлы находятся на рахных дисках.

    Всего записей: 8 | Зарегистр. 18-11-2007 | Отправлено: 19:20 15-03-2008 | Исправлено: Omul2, 19:34 15-03-2008
    VitAll2013

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    king_stiven
     
    Немного доработал её
     

    Цитата:
    @echo off
    for %%b in (d) do (
        cd /d %%b:\
        for /r %%c in (.) do (
            cd /d %%c
            for /f "usebackq tokens=1,2,3,4,5,6* delims=.,:, " %%d in (`dir /t:c /a:-d`) do if "%%j"=="file.exe" (
                set "file=%%j"
                call :qwe %%f%%e%%d 1%%g%%h
            )
        )
    )
    set end=yes
    call :qwe
    echo %way_fo_install%
    pause
    goto :eof
    :qwe
    if "%1" GTR "%t1%" (
        set "way_fo_install=%cd%\%file%"
        set t1=%1
        set t2=%2
    ) else if "%1"=="%t1%" (
        if "%2" GTR "%t2%" (
            set "way_fo_install=%cd%\%file%"
            set t1=%1
            set t2=%2
        )
    )
    if defined end reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment" /v way_for_install /t reg_sz /d "%way_fo_install:~0,-10%" /f

     
    Вторая не правильно работает, так как у меня английская винда + МУИ. Также сильно копать не стал так как в задумке сделать универсальный батник, для всех винд.
     
    Вопросы такие: как сделать его действия по тихому (по крайней мере без "Файл не найден") и как убрать подтверждение в конце, чтоб он самозавершался?
     
    Да и большое спасибо, оф кос.

    Всего записей: 17 | Зарегистр. 12-02-2006 | Отправлено: 22:52 15-03-2008
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    VitAll2013
    Всё же лучше использовать 2 вариант. Запусти в консоли в корне диска
    dir "%file%" /t:c /a:-d /s
    вставив вместо %file% существующий файл, что он пишет по английски вместо "Содержимое папки"?
     

    Цитата:
    как убрать подтверждение в конце, чтоб он самозавершался?  

    убери

    Цитата:
    echo %way_fo_install%  
    pause  


    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 02:56 16-03-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 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