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

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

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

vu1tur (11-09-2007 15:22): продолжаем в теме Задачи на bat-файлах 4  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

vu1tur



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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:54 27-04-2007 | Исправлено: Elroir, 03:59 10-09-2007
    saturnatu



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

    Всего записей: 9 | Зарегистр. 23-04-2007 | Отправлено: 14:39 30-05-2007
    KapralBel



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

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 14:50 30-05-2007
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    saturnatu а для проверки на входжение одной строки в другую
    echo %string% | find /i "%substring%" >nul && echo Substring found!

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 15:40 30-05-2007
    NIKZZZZ



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

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 18:29 30-05-2007
    Elroir



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

    Цитата:
    как узнать , кто использует в данный момент данный файл?

    Есть программа Unlocker - она встраивается в интерфейс эксплорера и может показать, кто/что использует файл.

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 18:34 30-05-2007
    NIKZZZZ



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

    Цитата:
    Есть программа Unlocker - она встраивается в интерфейс эксплорера

    Ну в интерфейс эксплорера как раз и не надо, а вот то что она из командной строки работает - только что узнал!  
     
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 18:51 30-05-2007
    igor_andreev

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

    Цитата:
    а окно, стартующее в 80х25 - УДОБНО. потому что из него ФАР сам очень замечательно разворачиватеся на весь экран автостартующей макрой, подстраиваясь под разрешение
    На вкус и цвет фломастеры у всех разные. Мне не нравится на полный экран, обычно 110x40 строк ставлю или 100x34 и "Raster Fonts" не люблю, везде в консольных окнах меняю на "Lucida Console"

    Цитата:
    и где на него можно сейчас посмотреть?
    В окончательно работающем виде его точно у меня сейчас нет, отформатировал наверно вместе с флэшкой за ненадобностью.  Ранние тестовые куски сохранились случайно на машине с Win 2000, в разных вариациях, и с использованием сторонних утилит, и с чтением из ини-файла и с переподвыподвертом. Подробнее...
     
     
     
    Добавлено:
    NIKZZZZ
    Еще такая есть http://www.dr-hoiby.com/WhoLockMe/ , тоже из комстроки может окошко показать

    Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 18:51 30-05-2007 | Исправлено: igor_andreev, 19:04 30-05-2007
    NIKZZZZ



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

    Цитата:
    Есть программа Unlocker

    "не найден блокирующий дескриптор"
    Удалить просишь, а она предлагает отложенное задание создать ...

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 19:33 30-05-2007
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ
    Извиняйте  
    За что купил - за то продал.

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 19:47 30-05-2007
    NIKZZZZ



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

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 20:45 30-05-2007
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ковырялся с батником, just for fun, и у меня возникло пара вопросов, на которые никак не могу найти решения.
     
    Вот сам батник, выводит надпись с эффектом "печатающегося текста"

    Код:
     
    @ECHO OFF
     
    set a=qwerty
    set /a b=0
    set /a c=5
     
    setlocal enabledelayedexpansion
     
    for /l %%i in (1,1,6) do (
        if !b! equ 5 (
            echo|echo %%a:~!b!%% >1.tmp
            for /f %%i in ('type 1.tmp') do (
                set d=%%i
                )
            goto _set
            )
        echo|echo %%a:~!b!,-!c!%% >1.tmp
        for /f %%i in ('type 1.tmp') do (
            set d=%%i
            )
        set /a b=!b!+1
        set /a c=!c!-1
        :_set    
        set /p=!d!<nul
        ping -n 1 localhost >nul
        )
     
    del 1.tmp
    pause >nul
     

     
    1. Как конструкцию echo | echo %%a:~%b%,-%c%%% записать в переменную напрямую, без временного файла?
    Экспериментировал с for /f, но ничего не получается.
     
    2. Как обработать переменную %a если ее значение с пробелами?
     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 22:03 30-05-2007
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    1.
    Код:
    set d=echo ^| echo %%%%a:~%%b%%,-%%c%%%%%%

    2. А в чем проблема?

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 22:13 30-05-2007
    01MDM



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

    Цитата:
     
    1.
    set d=echo ^| echo %%%%a:~%%b%%,-%%c%%%%%%
     

     
    Не получается

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 22:25 30-05-2007
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    Ты не мог бы писать конкретнее - что не получается?
    Как это выглядит?

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 22:31 30-05-2007
    01MDM



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

    Код:
     
    @ECHO OFF
     
    set a=qwerty
    set /a b=0
    set /a c=5
     
    setlocal enabledelayedexpansion
     
    for /l %%i in (1,1,6) do (
        if !b! equ 5 (
            set d=echo ^| echo %%%%a:~%%b%%%%%%
            goto _set
            )
        set d=echo ^| echo %%%%a:~%%b%%,-%%c%%%%%%
        set /a b=!b!+1
        set /a c=!c!-1
        :_set    
        set /p=!d!<nul
        ping -n 1 localhost >nul
        )
     
    pause >nul
     
     

     
    Вывод:

    Код:
     
    # test1.cmd
    echo | echo %%a:~%b%,-%c%%%echo | echo %%a:~%b%,-%c%%%echo | echo %%a:~%b%,-%c%%%echo | ec
    ho %%a:~%b%,-%c%%%echo | echo %%a:~%b%,-%c%%%echo | echo %%a:~%b%%%
     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 22:44 30-05-2007
    Elroir



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

    Код:
    @ECHO OFF
    set a=qwerty
    setlocal enabledelayedexpansion
    for /l %%i in (0,1,5) do (
        set d=!a:~%%i,1!
        set /p=!d!<nul
        ping -n 1 localhost >nul
        ping -n 1 localhost >nul
        )
    pause >nul

     
    Добавлено:
    Я сначала не понял, что тебе нужно получить в переменной результат, а не строчку с процентами.

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 23:06 30-05-2007
    01MDM



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

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 23:13 30-05-2007
    Elroir



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

    Цитата:
    Учиться, учиться у учиться, как завещал...


    Кстати, правильный ответ на первый вопрос таков:

    Код:
    set d=!a:~%b%,-%c%!


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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 23:18 30-05-2007 | Исправлено: Elroir, 23:19 30-05-2007
    vils007



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Доброе время суток. Задача. Из папки C:\w удалять все файлы и папки кроме С:\w\log и должны остаться файлы и которые были созданы за последний день (сутки не сильно важно хотябы так). Вот такой батник у меня получился
    @echo off
    xcopy/y/v/e/h/r/d "C:\W\LOG" C:\BAT
    echo УСПЕШНО ЗАВЕРШЕНО ПЕРВЫЙ ЭТАП КОПРИОВАНИЯ  
    pause
    Set DelPath=C:\W
    Set Ext=*.*
    CD "%DelPath%"
    For /R %%i In (%Ext%) Do (
    Del "%%i")
    echo УСПЕШНО ЗАВЕРШЕНО ЭТАП УДАЛЕНИЯ
    pause
    xcopy/y/v/e/h/r/d C:\BAT "C:\W\LOG"
    echo УСПЕШНО ЗАВЕРШЕНО ПОСЛЕДНИЙ ЭТАП
    pause
    exit
     
    моя проблема в том что я не понял как работает получение даты создания файла в BAT-файлах. и не знаю как получить системную дату. прошу помочь дописать батник. (батники первый день трогать пришлось)

    Всего записей: 4 | Зарегистр. 31-05-2007 | Отправлено: 12:50 31-05-2007
    Elroir



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

    Цитата:
    батники первый день трогать пришлось

    Ну и как они на ощупь?    

    Цитата:
    Из папки C:\w удалять все файлы и папки кроме С:\w\log и должны остаться файлы и которые были созданы за последний день  

    Не совсем понятно - файлы, которые должны остаться (за последний день)  - это файлы в С:\w\log? То есть и оттуда надо удалить некоторые файлы?

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 13:37 31-05-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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 3
    vu1tur (11-09-2007 15:22): продолжаем в теме Задачи на bat-файлах 4


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru