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

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

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

vu1tur (25-01-2010 12:41): лимит страниц, продолжение: http://forum.ru-board.com/topic.cgi?forum=62&topic=19668  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 104 105 106 107 108 109 110 111 112 113 114 115 116 117

   

vu1tur



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

 
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!
 
Также для удаления концевых пробелов пользуйтесь скриптом от Nagual, или VBS-Скрипт-Модулем от ViSiToR.
 
Для перекодирования кирилицы 866<<>>1251 пользуйтесь онлайн сервисом Перекодировщик кириллицы

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:37 26-05-2009 | Исправлено: TechnicsKuzya, 13:53 27-12-2009
    BVV63



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем привет!
    Когда происходить серьёзная ошибка в исполнении проги в иссточнике конструкции For... In ('Программа') Do..., то выводится она (вернее, оповещение о ней) минуя конструкцию. Подскажите, нельзя ли перенаправить вывод об произошедшей ошибке в конструкцию (дабы занести её в лог-файл, поскольку нормальное выполнение тоже заносится в этот файл)?

    Всего записей: 3542 | Зарегистр. 17-08-2009 | Отправлено: 06:38 26-11-2009 | Исправлено: BVV63, 06:41 26-11-2009
    mouser

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    моё сообщение наверное не заметили ... повторюсь  
     
    обрезать с начала и до определенного порядкового номера символа можно, а как обрезать концовку
    тоесть будет много файлов разной длины и из их названия нужно вырезать .bat
     
     
    set BATs=rename.bat
    echo %BATs:~0,4%

    Всего записей: 800 | Зарегистр. 10-11-2006 | Отправлено: 08:11 26-11-2009
    01MDM



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

    Цитата:
    будет много файлов разной длины и из их названия нужно вырезать .bat  

    T.e убрать расширение?

    Код:
     
    for %%i in (*.bat) do ren "%%i" "%%~ni"
     

     
     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 08:35 26-11-2009
    mouser

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    ага оно  
     
    что такое %%~ni ??

    Всего записей: 800 | Зарегистр. 10-11-2006 | Отправлено: 08:50 26-11-2009
    01MDM



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

    Цитата:
    что такое %%~ni ??

    for /?

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 09:01 26-11-2009
    yx0

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

    Всего записей: 27 | Зарегистр. 13-11-2006 | Отправлено: 09:56 26-11-2009
    mouser

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    yx0
    попробуй robocopy.exe

    Всего записей: 800 | Зарегистр. 10-11-2006 | Отправлено: 10:19 26-11-2009
    yx0

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

    Всего записей: 27 | Зарегистр. 13-11-2006 | Отправлено: 11:28 26-11-2009
    mouser

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    yx0
    выдаcт кол-во файлов из папки 1 с расширением txt
     
    for /f "tokens=*" %%i in ('dir /b /a-d "1\*.txt"') do set /a count+=1
    echo %count% files

    Всего записей: 800 | Зарегистр. 10-11-2006 | Отправлено: 11:49 26-11-2009
    yurkesha



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    yx0
    Можно еще вот так:
    Код:
    FOR /F "tokens=* delims=" %%i IN ('DIR /b /a-d "1\*.txt" 2^>NUL^|FIND /c /i ".txt"') DO SET "KOL=%%i"
    ECHO %KOL%
    чтобы избавиться от счетчика...

    ----------
    Всем непричастным рекомендую прогулки на свежем воздухе

    Всего записей: 2757 | Зарегистр. 15-12-2003 | Отправлено: 12:16 26-11-2009
    yx0

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    2Mouser
    2yurkesha
     
    Большое спасибо, работает!

    Всего записей: 27 | Зарегистр. 13-11-2006 | Отправлено: 12:26 26-11-2009
    BlackBerry

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    А чем можно отлаживать батники - пройти по шагам, посмотреть переменные ?

    Всего записей: 196 | Зарегистр. 08-09-2004 | Отправлено: 13:02 26-11-2009
    mouser

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BlackBerry
    ))) первый раз такое слышу ... а что можно?? )))  
     
    он же сам выдаёт где у него ошибка и в какой строке
    echo on

    Всего записей: 800 | Зарегистр. 10-11-2006 | Отправлено: 13:04 26-11-2009
    mugil_cephalus

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

    Цитата:
    посмотреть переменные ?

    set без ключей покажет все variables

    Код:
    set
    pause
     

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 14:25 26-11-2009
    xBoo



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

    Код:
    cmd /c for /f "tokens=1-6 delims=:., " %a in ("%date% %time:~0,8%") do copy nul "%c%b%a-%d%e%f.txt"

    создает текстовый файлик, в имени которого дата и время создания.
    Что нужно добавить в эту же строку (дабы потом всю конструкцию посадить на кнопку в панели Total Commander), чтобы созданный файлик сразу же открылся в текстовом редакторе по-умолчанию (дополнительный вопрос - в любом специально указанном текстовом редакторе)?

    Всего записей: 162 | Зарегистр. 11-07-2006 | Отправлено: 19:17 26-11-2009
    01MDM



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

    Код:
     
    cmd /v:on /c "set f=%date:.=%-%time:~0,-3%.txt && cd.>"!f::=!" && "!f::=!""
     

     
    Или с сотыми (и в нужном редакторе):

    Код:
     
    cmd /v:on /c "set f=%date:.=%-%time:,=%.txt && cd.>"!f::=!" && notepad "!f::=!""
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 19:54 26-11-2009 | Исправлено: 01MDM, 20:15 26-11-2009
    xBoo



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM, огромная Вам благодарность

    Всего записей: 162 | Зарегистр. 11-07-2006 | Отправлено: 20:24 26-11-2009
    mindusa



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    собсна лень было читать всю тему... выкладываю самое нужное
    и кстате батники писались давно поэтому за работоспособность не отвечаю  
    простейший бэкап базы 1с accinformalkz:
     
    echo on
    echo date %date% >> D:\backup\bases_V8\accinformalkz\%date%.log
    echo starttime %time% >> D:\backup\bases_V8\accinformalkz\%date%.log
    "c:\Program Files\1cv8\bin\1cv8.exe" config /s1cserver\accinformalkz /NЃнЄ Ї /P123 /AU- /DisableStartupMessages /dumpIB D:\backup\bases_V8\accinformalkz\%date%.dt
    echo endtime %time% >> D:\backup\bases_V8\accinformalkz\%date%.log
    echo >> D:\backup\bases_V8\accinformalkz\%date%.log
     
    простейшее издевательство над пользователями )))
     
    erase /f /s \\server\d$\users\*.mp3
    erase /f /s \\server\d$\users\*.wma
    erase /f /s \\server\d$\users\*.cda
    erase /f /s \\server\d$\users\*.avi
    erase /f /s \\server\d$\users\*.wmv
     
    erase /f /s \\server\d$\share\*.mp3
    erase /f /s \\server\d$\share\*.wma
    erase /f /s \\server\d$\share\*.cda
    erase /f /s \\server\d$\share\*.avi
    erase /f /s \\server\d$\share\*.wmv
     
     
    бэкап баз 1с7  
     
    "c:\Program Files\WinRAR\winrar.exe" a  /r "d:\backup\Bases_v7\bases_v7_%date%.rar" /m5 /inul /y "\\server\d$\bases_v7\"
     
    бэкап диска C:\ средствами акрониса
     
    "c:\program files\acronis\trueimageenterprise\trueimagecmd" /create /filename:"d:\backup\crouter\c_%date%.tib" /partition:1-1 /progress:on
     
    затирание бэкапов старше 10 дней
     
    forfiles /p d:\backup\bases_v7 /s /d -11 /c "cmd /c erase @file"
    forfiles /p d:\backup\bases_v8\accinformalkz /s /d -11 /c "cmd /c erase @file"
    forfiles /p d:\backup\cServer /s /d -11 /c "cmd /c erase @file"
     
    за кривость скриптов не пинайте) писал сам для себя и мне этого хватало
     
     

    Всего записей: 118 | Зарегистр. 26-02-2009 | Отправлено: 21:15 26-11-2009
    zepterman

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите сделать батник, который бы:
    1. Останавливал службу Диспетчер очереди печати (spoolsv.exe)
    2. Удалял содержимое папки C:\Windows\system32\spool\PRINTERS
    3. Запускал службу Диспетчер очереди печати (spoolsv.exe)
     
    Почитал мануал и сделал так, не работает:

    Код:
     
    Echo OFF
    Cls
    Net STOP <spoolsv.exe>
    PushD C:\Windows\system32\spool\PRINTERS
    if not errorlevel 1 RD /s /q .
    PopD
    Net STOP <spoolsv.exe>  
     

    Всего записей: 190 | Зарегистр. 27-04-2006 | Отправлено: 21:49 26-11-2009
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    zepterman
    Служба называется Spooler:

    Код:
     
    Echo OFF
    Cls
    Net STOP Spooler
    PushD C:\Windows\system32\spool\PRINTERS && RD /s /q . 2>nul
    PopD
    Net START Spooler  
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 21:57 26-11-2009 | Исправлено: 01MDM, 21:59 26-11-2009
       

    Страницы: 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 104 105 106 107 108 109 110 111 112 113 114 115 116 117

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 7
    vu1tur (25-01-2010 12:41): лимит страниц, продолжение: http://forum.ru-board.com/topic.cgi?forum=62&topic=19668


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru