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

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



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

    Код:
     
    @echo off
    setlocal
    set "dest_path=C:\2"
    set "dest_folder=%~nx1"
    md "%dest_path%\%dest_folder%" 2>nul
    xcopy "%~1" "%dest_path%\%dest_folder%" /s /e /r /h /i
     

    Исходный каталог должен передаваться батнику в кавычках и его путь не должен заканчиваться на "\".
    Пример:
    copy_folder.cmd "C:\WINDOWS\SYSTEM32"
    Так в каталог C:\2 скопируется SYSTEM32 со всем содержимым.

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 15:23 20-04-2008
    Dantis

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здрасти всем.
     
    Как удалить   фай на компе..где бы он не находился.?
     
    файл 1.exe

    Всего записей: 26 | Зарегистр. 25-03-2008 | Отправлено: 07:32 21-04-2008
    01MDM



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

    Цитата:
    Как удалить   фай на компе..где бы он не находился.?


    Код:
     
    @echo off
    for %%i in (q w e r t y u i o p a s d f g h j k l z x c v b n m) do (
        for /f "tokens=*" %%i in ('dir /b /s %%i:\1.exe 2^>nul') do del /q "%%i"
    )
     
     

     
    Или еще проще

    Код:
     
    @echo off
    for %%i in (q w e r t y u i o p a s d f g h j k l z x c v b n m) do del /s /q "%%i:\1.exe" 2>nul
     

     
     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 08:44 21-04-2008 | Исправлено: 01MDM, 13:29 21-04-2008
    teaser11

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день! Прошу помочь, на компутере на диске E есть две папки: папка Клипы и папка Музыка, весом более 1 гига каждая, нужен батник который самостоятельно бы удалил эти папки в определенный день...возможно ли это?
    Сам я в батниках не понимаю ни черта....

    Всего записей: 4 | Зарегистр. 22-04-2008 | Отправлено: 04:04 22-04-2008
    ipmanyak



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    teaser11 В планировщике заданий создай  задание на нужный день на твой  батник.  В батнике:
    RD  /s /q  "E:\Клипы"  
    RD  /s /q  "E:\Музыка"  


    ----------
    В сортире лучше быть юзером, чем админом...

    Всего записей: 11735 | Зарегистр. 10-12-2003 | Отправлено: 06:29 22-04-2008 | Исправлено: ipmanyak, 06:30 22-04-2008
    inock

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите плз, реализуемо ли средствами cmd следующая задача:
    требуется делать рекурсивный обход каталогов и производить действия (в данном случае удалять) файлы, у которых дата модификации И дата создания старше, чем указанное количество дней.
     
    Пока я придумал только следующее.  
     
    Первый батник:
    C:\utils\FORFILES  /D -14 /C "cmd /c C:\utils\fordir.cmd @path"
     
    Второй батник (C:\utils\fordir.cmd):
     
    FOR /F "tokens=1" %%i in ( 'dir /T:C %1 ^| find "."' ) do @echo %%i  
     
    Ну вот получил я у файлов, у которых дата модификации больше 14 дней назад дату создания. Теперь ее как-то надо проанализировать и если она тоже больше, чем 14 дней назад - файл удалить. А вот как проанализировать - никак не придумаю. Оно вообще реально в рамках топика?

    Всего записей: 37 | Зарегистр. 06-12-2004 | Отправлено: 11:05 22-04-2008
    01MDM



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

    Код:
     
    forfiles /s /d -14 /c "cmd /c del @file"
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 11:45 22-04-2008
    inock

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

    Цитата:
    Наверное так, проверить сейчас не могу

     
    Так здесь проверка по второму критерию (дата создания файла) не проводится.
     

    Всего записей: 37 | Зарегистр. 06-12-2004 | Отправлено: 12:33 22-04-2008
    RaP1D



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    teaser11
    Моно ещё так:
    date /t | find "01.06" && goto s
    exit
     
    :s
    RD  /s /q  "E:\Клипы"  
    RD  /s /q  "E:\Музыка"  
     
     
    01.06 - день и месяц
     
    Добавлено:
    У меня вопрос, можно ли посредством bat файлов качать файлы из инета, например с адреса:

    Цитата:
    "http://site.ru/arxiv.rar"

    Всего записей: 186 | Зарегистр. 29-12-2007 | Отправлено: 13:53 22-04-2008
    igor_andreev

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

    Цитата:
    Оно вообще реально в рамках топика?

    Реально. Но муторно. Vbs легче прикрутить.

    Код:

    @echo off
    echo WScript.Quit (DateDiff("d", CreateObject("Scripting.FileSystemObject").GetFile(WScript.Arguments.Item(0)).DateCreated, Now))>timediff.vbs
     
    for /r %%a in (*.*) do call :compare_crdate "%%~fa"
    del timediff.vbs
    goto :eof
     
    :compare_crdate
    cscript timediff.vbs %1  
    if %errorlevel% gtr 14 echo %1 created more than 14 days ago  

     
    RaP1D

    Цитата:
    У меня вопрос, можно ли посредством bat файлов качать файлы из инета, например с адреса:  

    В шапку загляни, в Полезные утилиты

    Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 14:23 22-04-2008 | Исправлено: igor_andreev, 14:29 22-04-2008
    inock

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

    Цитата:
    У меня вопрос, можно ли посредством bat файлов качать файлы из инета, например с адреса:

     
    wget рулит.  
    http://sourceforge.net/projects/unxutils
    маны в интернете
     
     
    Добавлено:
    igor_andreev

    Цитата:
    Реально. Но муторно. Vbs легче прикрутить.  

     
    Это-то мне было понятно с самого начала, что язык программирования лучше бы справился с этим делом. Но VBS я не понимаю абсолютно...
     
    Вот сейчас пытаюсь разобраться, что делает эта строка:

    Код:
     
    WScript.Quit (DateDiff("d", CreateObject("Scripting.FileSystemObject").GetFile(WScript.Arguments.Item(0)).DateCreated, Now))
     

     
    Она сравнивает только дату создания файла? То есть  forfiles /d -14 по любому сначала прогонять?

    Всего записей: 37 | Зарегистр. 06-12-2004 | Отправлено: 14:28 22-04-2008
    igor_andreev

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

    Цитата:
    Вот сейчас пытаюсь разобраться, что делает эта строка:

    Ничего не делает, выходит с кодом возврата, равным количеству дней, прошедших с момента создания файла, переданного в качестве параметра. На две последние строчки батника посмотри.

    Цитата:
    Она сравнивает только дату создания файла?  

    В этом варианте - да.

    Цитата:
    То есть  forfiles /d -14 по любому сначала прогонять?

    В forfiles и вставь его Даже не весь батник, а только последние две строчки

    Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 17:51 22-04-2008 | Исправлено: igor_andreev, 17:54 22-04-2008
    teaser11

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

    Всего записей: 4 | Зарегистр. 22-04-2008 | Отправлено: 03:36 23-04-2008
    RaP1D



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как сделать импорт команд в батник из другого файла?
     
    На примере Bat у меня вот так:
     
    файл start.bat:
    @echo off
    call param.bat
    echo %a% and %b%
    pause
     
    Файл param.bat:
    set a=345
    set b=dfg
     
    А как сделать, чтобы он брал текст из txt или ini, т.е. заместо param.bat был param.ini

    Всего записей: 186 | Зарегистр. 29-12-2007 | Отправлено: 12:21 23-04-2008
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Посмотрите вот это сообщение. Нужно создать запуск portable-программы с копированием профиля.

    Всего записей: 4409 | Зарегистр. 03-05-2006 | Отправлено: 13:41 23-04-2008
    Tipulatoid



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

    Цитата:
    А как сделать, чтобы он брал текст из txt или ini, т.е. заместо param.bat был param.ini


    Код:
    for /f "delims== tokens=1*" %%a in ('find "set a" param.ini') do set a=%%b
    for /f "delims== tokens=1*" %%a in ('find "set b" param.ini') do set b=%%b

    Всего записей: 349 | Зарегистр. 22-12-2006 | Отправлено: 13:44 23-04-2008
    RaP1D



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Tipulatoid
    Спасибо!
     
     
     
    А можно ли сделать так, чтобы батник сортировал картинки разных разрешений по папкам?
    Допустим, картинки 1024x768 в папку normal, 1280x1024 в папку big и т.д.

    Всего записей: 186 | Зарегистр. 29-12-2007 | Отправлено: 22:27 23-04-2008
    Andryha2005

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Нужен батник, который
    1 устанавливает сетевое подключение (назовём его Internet);
    2 проверяет его на работоспособность (ping),
    3 в случае проблем (если ping не проходит) перезапускает подключение (с повторной проверкой),
    4 если же всё нормально заканчивает свою работу.  

    Всего записей: 201 | Зарегистр. 09-07-2005 | Отправлено: 00:44 24-04-2008
    Nagual



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

    Цитата:
    1 устанавливает сетевое подключение (назовём его Internet);

    тип подключения?

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 08:41 24-04-2008
    lexx

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите как сделать приглашение на ввод внутри бат файла?
    типа -  
    -------------------------------
    Выдаем кучу информации
    Введите номер : <здесь приглашение на ввод>
    записываем полченный номер в файл
    -------------------------------
    Голову сломал уже, все сделал, а приглашение на ввод не получается, видел где-то никак не могу найти

    Всего записей: 63 | Зарегистр. 16-11-2002 | Отправлено: 10:20 24-04-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.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru