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

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



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    dredd00
    Имелось ввиду Полезные   утилиты в шапке данной темы
    а там уже Win2000(3) Resource Kit Tools

    Всего записей: 140 | Зарегистр. 23-11-2004 | Отправлено: 14:42 02-04-2008
    moloch

    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Может есть укого-нибудь идеи по поводу того как отконвертировать сегодняшнюю дату в название дня недели. По типу: Mon, Tue и т.д.

    Всего записей: 43 | Зарегистр. 10-04-2002 | Отправлено: 15:42 02-04-2008
    Elroir



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

    Код:
     
    @echo off
    setlocal
    echo wscript.echo WeekDayName^(WeekDay^(date^)^)>tmp.vbs  
    for /f %%a in ('cscript tmp.vbs //Nologo') do set "day=%%a"
    del /q tmp.vbs
    echo %day:~0,3%
     


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

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

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
      Проветствую всех!
     
     Подскажите пожалуйста, как реализовать автоматическую подстановку цифер в следующей команде с 2 по 94 в оба параметра:
    HTMLtoTXT.exe "G:\AleXP\progs\Inet\Portable Offline Browser\Download\www.proxycn.net\proxy1000\page3.htm" "G:\AleXP\Proxy\ProxyList\200804\ProxyCN3.txt"
     
     С уважением,

    Всего записей: 350 | Зарегистр. 13-02-2007 | Отправлено: 23:11 02-04-2008
    igor_andreev

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

    Код:

    for /l %a in (2,1,94) do HTMLtoTXT.exe "G:\AleXP\progs\Inet\Portable Offline Browser\Download\www.proxycn.net\proxy1000\page%a.htm" "G:\AleXP\Proxy\ProxyList\200804\ProxyCN%a.txt"

    Это если запускать из комстроки. Из батника - знаки % удвоить %%.
     
    moloch
    тынц  

    Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 23:33 02-04-2008 | Исправлено: igor_andreev, 23:39 02-04-2008
    AleXPwin

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

    Цитата:
    Это если запускать из комстроки. Из батника - знаки % удвоить %%.  

    Огромная благодарность! Батники - это сила! Низкий поклон.
     
     С уважением,
     
    Добавлено:
    Если возможно еще вопрос: Как сложить полученные тхт последовательно в один файл

    Всего записей: 350 | Зарегистр. 13-02-2007 | Отправлено: 23:59 02-04-2008
    igor_andreev

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

    Цитата:
    Как сложить полученные тхт последовательно в один файл

    Если очередность склеивания файлов не важна, то можно даже так собрать все файлы в папке:

    Код:

    copy /b *.txt all.xxx
    ren all.xxx all.txt

    Расширение xxx - чтобы он сам в себя не копировался.
    Если нужно, чтобы по порядку копировались, то:

    Код:

    echo.>all.txt
    for /l %%a in (2,1,94) do copy /b "all.txt"+"ProxyCN%%a.txt" "all.txt"


    Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 00:38 03-04-2008
    AleXPwin

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

    Цитата:
    Если очередность склеивания файлов не важна, то можно даже так собрать все файлы в папке:  
     
    Код:
    copy /b *.txt all.xxx  
    ren all.xxx all.txt  
     
    Расширение xxx - чтобы он сам в себя не копировался.  
    Если нужно, чтобы по порядку копировались, то:  
     
    Код:
    echo.>all.txt  
    for /l %%a in (2,1,94) do copy /b "all.txt"+"ProxyCN%%a.txt" "all.txt"  

     
    Еще раз благодарю. Несколько часов работы вручную (не единоразово), превратились в несколько минут отдыха! Низкий поклон!

    Всего записей: 350 | Зарегистр. 13-02-2007 | Отправлено: 00:43 03-04-2008
    sipok

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    slayer120
     
    @echo off  
    for /f "tokens=2 delims==" %%i in ('wmic path win32_LocalTime get DayOfWeek /value') do (  
        if not %%i gtr 5 if not %%i equ 0 (  
     
    NET USE Z: \\server1\folder                            --- если вместо вот этого пишем
    xcopy /i /Y f:\folder\*.txt "Z:\subfolder\%%i\"  ---  
    NET USE Z: /delete                                         ---
         
        )  
    )  
     
    пишем вот это:
    xcopy /i /Y f:\folder\*.txt \\server1\folder\subfolder\%%i\  
    кавычки не помогают
    он все равно выдает:  
    File creation error - The filename, directory name, or volume label syntax is in
    correct.
     
    Unable to create directory - \\server1\folder\subfolder\4
    0 File(s) copied
     
    PLEASE HELP ((((((

    Всего записей: 18 | Зарегистр. 15-11-2006 | Отправлено: 16:41 03-04-2008 | Исправлено: sipok, 17:03 03-04-2008
    igor_andreev

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sipok
    Иногда вместо NET USE удобнее использовать PUSHD\POPD. Букву диска (Z) просто не указывай в этом случае, PUSHD их от балды присваивает. Ну в смысле не от балды, а первую попавшуюся свободную букву с конца алфавита

    Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 16:47 03-04-2008 | Исправлено: igor_andreev, 16:52 03-04-2008
    sipok

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    igor_andreev
     
    Спасибо, но сейчас проблема, не в подключении к другому серверу, а в ошибке при копировании
     
    File creation error - The filename, directory name, or volume label syntax is in  
    correct.  
     
    Unable to create directory - \\server1\folder\subfolder\4  
    0 File(s) copied

    Всего записей: 18 | Зарегистр. 15-11-2006 | Отправлено: 17:09 03-04-2008 | Исправлено: sipok, 17:40 03-04-2008
    Joolz

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ктонибудь может объяснить, почему в cmd-файле конструкция вида

    Код:
     If %ERRORLEVEL%==0 (

    работает, а вида

    Код:
     If ErrorLevel 0 (  

    не работает.

    Всего записей: 100 | Зарегистр. 24-01-2008 | Отправлено: 17:55 03-04-2008
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Joolz
    В cmd-файле работают обе конструкции. Проблема, видимо, в твоем конкретном батнике. Приведи весь код.

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 19:12 03-04-2008
    914EREP



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте!
    Необходима помощь специалиста. Проблема в следующем:
    Необходимо разработать командный файл, который формировал бы ежемесячный отчет об изменениях в рабочем каталоге (файлы созданные, удаленные).
    Я сказал преподу, что реализация данного командного файла с помощью командного языка MS-DOS не представляется возможным.
    Он мне пояснил, что с использованием чисто командного языка DOS его реализовать не возможно, но с использованием командного языка уже реализованного в Windows на платформе NT можно.
    Не обходимо, например, хранить содержимое каталога на 1 число месяца. Как только наступает новый месяц. Формируем файл с новым содержимым каталога. И их сравниваем, какие строки добавились, какие убрались.
    Заранее благодарен всем ответившим.

    Всего записей: 70 | Зарегистр. 17-05-2006 | Отправлено: 19:43 03-04-2008
    igor_andreev

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

    Цитата:
    Спасибо, но сейчас проблема, не в подключении к другому серверу, а в ошибке при копировании

    Просто PUSHD делает удаленную папку текущей, часто удобней. И убери net use из цикла FOR. Как то так должно быть(без проверки правда)

    Код:

    for /f "tokens=2 delims==" %%i in ('wmic path win32_LocalTime get DayOfWeek /value') do (  
      if not %%i gtr 5 if not %%i equ 0 set "day-number=%%i"
    )
     
    if defined day-number (
      pushd \\server1\folder
      xcopy f:\folder\*.txt subfolder\%%i\  /i /Y  
      popd  
    )

     
    И зачем тебе проверка "if not %%i gtr 5 if not %%i equ 0"? Просто в планировщик забей батник, раз в день с понедельника по пятницу, %%i всегда будет каким-надо.
     

    Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 20:15 03-04-2008 | Исправлено: igor_andreev, 20:20 03-04-2008
    Dantis

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Чувствую мне не кто  не мопомжет =(

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



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте, подскажите - как сделать чтобы батник перед выполнением команды спрашивал - "Выполнить команду ping? [y - да/n - нет]?" Желательно чтобы батник при нажатии кнопки Y (или N) выполнял команду сразу - без нажатия Enter (как в chkdsk /f), это возможно? Заранее, спасибо.

    Всего записей: 397 | Зарегистр. 02-05-2006 | Отправлено: 01:43 04-04-2008 | Исправлено: Grim_Repo, 01:57 04-04-2008
    igor_andreev

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

    Цитата:
    без нажатия Enter (как в chkdsk /f), это возможно?

    Если разово попользовать, то можешь в начале батника создать reply.com, в конце удалить.
    http://support.microsoft.com/kb/77457

    Код:

    ECHO N REPLY.COM>_.TMP
    ECHO E 0100 B4 08 CD 21 3C 00 75 02 CD 21 B4 4C CD 21>>_.TMP  
    FOR %%A IN (RCX 000E W Q) DO ECHO %%A>>_.TMP
    ECHO.>>_.TMP
    DEBUG<_.TMP>NUL
    DEL _.TMP

    Если постоянно пользоваться, то choice.exe из любого ресурс кита.

    Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 02:18 04-04-2008
    01MDM



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

    Цитата:
    И зачем тебе проверка "if not %%i gtr 5 if not %%i equ 0"? Просто в планировщик забей батник, раз в день с понедельника по пятницу, %%i всегда будет каким-надо.  

     
    Это я просто делал как пример (4 страница), и сразу написал, что если не нужны проверки if, то их можно убрать.
     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 08:41 04-04-2008
    Fall0utJack

    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите плиз, обсуждался ли батник, который автоматизирует копирование всех данных с  
    флэшки? т.е. вставил флэшку, запустил батник, происходит копирование всех данных в фоновом режиме в указанную папку?  
    Какая команда может использоваться в данном случае copy или xcopy?

    Всего записей: 473 | Зарегистр. 24-03-2007 | Отправлено: 09:22 04-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