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

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



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM, king_stiven благодарю!
    IP выводится, но далее при подстановке его в команду копирования - ошибка
    я думаю это из-за пробела, который появляется в этой строке, после IP:
    copy %systemroot%\Desctop.db "\\%ip%\a"
    Пример
     
    for /f "tokens=2 delims=:" %%i in ('type Desctop.db ^| findstr "IP-[*]: \.[0-9]"') do (  
        set ip=%%i && goto:next  
    )  
    :next  
    set ip=%ip: =%  
    echo %ip%
    attrib %systemroot%\Desctop.db -r -h -s
    copy %systemroot%\Desctop.db "\\%ip%\a"
    attrib %systemroot%\Desctop.db +r +h +s
    pause

    Всего записей: 56 | Зарегистр. 10-12-2007 | Отправлено: 15:52 30-12-2007 | Исправлено: SymA, 16:02 30-12-2007
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SymA
    Если \\%ip%\a это каталог, то добавь в конце "\", и он должен существовать
     
     copy %systemroot%\Desctop.db "\\%ip%\a\"

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 16:58 30-12-2007
    SymA



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

    Всего записей: 56 | Зарегистр. 10-12-2007 | Отправлено: 17:11 30-12-2007
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SymA
    Проверь, чтобы не было замыкающего пробела в строчке  
    set ip=%ip: =% или измени ее
    на set "ip=%ip: =%"

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 17:43 30-12-2007
    SymA



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    Спасибо ! разобрался (в этой строчек был пробел)

    Всего записей: 56 | Зарегистр. 10-12-2007 | Отправлено: 17:48 30-12-2007
    SymA



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    данная строка должна убирать ассоциацию с mp3 файлов . . . всё равно продолжают заускаться, даже после перезагрузки EXPLORER'a. в чём ошибка ?

    Код:
    @assoc .mp3=%Systemroot%\system32\rundll.exe

    Всего записей: 56 | Зарегистр. 10-12-2007 | Отправлено: 23:58 30-12-2007
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SymA
    Ошибка в том, что ты путаешь assoc и ftype
    assoc привязывает файлы с определенным расширением к типу файла, а ftype назначает на тип файла команду открытия
    Например:
    assoc .txt=txtfile
    ftype txtfile=notepad.exe %1 %*
     
    Просто введи без параметров assoc и ftype, что бы посмотреть
    Чтобы удалить ассоциацию надо выполнить  
    assoc .mp3=
    т.е присвоить нулевое значение
     
    Все это хранится в HKCR  

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 01:07 31-12-2007 | Исправлено: 01MDM, 01:10 31-12-2007
    SymA



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM спасибо
    пишет - файл не найден
     

    Код:
     
    SET  ASDF=%date:~-10,2%%date:~-7,2%%date:~-4,4%%time:~-11,2%%time:~-8,2%%time:~-5,2%
    set cpath=%~dp0
    mkdir "%systemroot%\%asdf%\system backup\"
    xcopy %systemroot%\system  "%systemroot%\%asdf%\system backup\" /e /h
    attrib "%systemroot%\%asdf%\" +r +h +s /s /d
     

     
    attrib "%systemroot%\%asdf%" +r +h +s /s /d  
    во как  

    Всего записей: 56 | Зарегистр. 10-12-2007 | Отправлено: 01:51 31-12-2007 | Исправлено: SymA, 02:28 31-12-2007
    01MDM



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

    Код:
     
    attrib +h +s +r /s /d Folder\*
     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 10:46 31-12-2007
    strat

    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Как обрезать последние 100-200 байт файла
     
    Есть файлы с цифровой подписью что дописывается в конце. их надо все склеить чтоб обработать в excel но подпись мешает.
     
     
    файлов много поэтому надо автоматизировать.
     
    сколько байт в конце дописывается не помню поэтому желательно сделать изменяемый параметр.
     
    Если кто то может подсказать куда копать то буду благодарен

    Всего записей: 459 | Зарегистр. 27-12-2005 | Отправлено: 14:41 31-12-2007
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    strat
     
    А есть резалка cut.exe из GNU utilities for Win32. Возможно подойдёт, если работает подобно тотал командеру. Например размер фвйла 22341 байт задаём 22241, 100 байт(знаков) отсекается.

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 15:24 31-12-2007
    strat

    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    по твоему описанию это не то но посмотрю
     
    мои файлы могут быть разного размера но подпись всегда одного т.е.
     
    файл 1 - 1000 байт
    файл 2 - 1500 байт
    файл 3 - 100000 байт но всегда в конце определенное кол-во байт надо обрезать

    Всего записей: 459 | Зарегистр. 27-12-2005 | Отправлено: 15:40 31-12-2007 | Исправлено: strat, 15:41 31-12-2007
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    strat
     
     
    ошибся, утилита split надо
     
     
    split  --help
     
    Usage: split [OPTION] [INPUT [PREFIX]]
    Output fixed-size pieces of INPUT to PREFIXaa, PREFIXab, ...; default
    PREFIX is `x'.  With no INPUT, or when INPUT is -, read standard input.
     
      -b, --bytes=SIZE        put SIZE bytes per output file
      -C, --line-bytes=SIZE   put at most SIZE bytes of lines per output file
      -l, --lines=NUMBER      put NUMBER lines per output file
      -NUMBER                 same as -l NUMBER
          --verbose           print a diagnostic to standard error just
                                before each output file is opened
          --help              display this help and exit
          --version           output version information and exit
     
    SIZE may have a multiplier suffix: b for 512, k for 1K, m for 1 Meg.

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 17:05 31-12-2007 | Исправлено: king_stiven, 18:02 31-12-2007
    strat

    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    выложи утилиту отдельно а то качать весь пакет не хочется
     
    например на slil.ru

    Всего записей: 459 | Зарегистр. 27-12-2005 | Отправлено: 14:30 01-01-2008 | Исправлено: strat, 14:31 01-01-2008
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    есть лог длиной 64к, из них ~63к - хвост нулей.
    Как быстро посмотреть последние пару ненулевых строк?  
    если можно - не выходя за рамки утилит winxp, хотя это и не догма.

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 20:05 01-01-2008
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425  
     
     
    more /s file | findstr /v /C:"000000000...0000000000000"  | findstr /v /r "^$">>2.txt
    количество ноликов подобрать

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 21:47 01-01-2008 | Исправлено: king_stiven, 21:48 01-01-2008
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    Немного дополню king_stiven

    Код:
     
    @echo off
    set cnt=0
    for /f "tokens=*" %%i in ('type test.log ^| findstr /v ^0.0$') do set /a cnt+=1
    more +%cnt% test.log | findstr /v ^0.0$
     

    Если нули начинаются с новой строки.  
    Так же не будут видны строки которые начинаются и заканчиваются нулем
     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 22:51 01-01-2008
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM, king_stiven
    под нулями я имел в виду много \x00 а не строки из символов "0"...
    т.е. надо отрезать эту "строку" в 63к символов с кодом 00h - идущих от конца полезной строки до конца файла.
     
    проблема решилась - more /s сконвертировала нули в пустую строку, дальше несложно.

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 23:20 01-01-2008 | Исправлено: wolf0425, 23:55 01-01-2008
    cluster

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Не обсуждался ли здесь вопрос добавления пользователя в доступ на каталог и все его подкаталоги, если наследование разрешений не присутствует везде?

    Всего записей: 1720 | Зарегистр. 21-11-2003 | Отправлено: 13:24 03-01-2008
    SymA



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    как осуществить поиск файлов(неизвестных)в каталоге и подкатологах ?

    Всего записей: 56 | Зарегистр. 10-12-2007 | Отправлено: 02:16 04-01-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