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

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

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

vu1tur (09-01-2011 11:53): лимит страниц, продолжение — http://forum.ru-board.com/topic.cgi?forum=62&topic=22143  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

vu1tur



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

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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 17:45 04-09-2010 | Исправлено: Accessor, 18:04 28-09-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    добавить просто, только сосредоточтиться надо, а я щас освсем другое делаю могу только простое поменять.
    щас с заголовком сделкаю
     
    Добавлено:
    а выбор на что изменить? только чтоб один файл искало?  
     
    Добавлено:
    http://bomz-co.narod.ru/current.exe  - так пойдет???

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 22:20 05-10-2010
    Free_Soft



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

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 22:29 05-10-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    перекачай

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 22:31 05-10-2010
    Free_Soft



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

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 22:33 05-10-2010
    bomzzz



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

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 22:36 05-10-2010
    qwertyuiopa

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, как пропарсить каталог на диске, вытащить только имя файлов и их размер.
     
    Делаю так:
    dir *.*>dirka.txt
    For /F "skip=5 Tokens=3,4,* UseBackQ Delims= " %%i In ("dirka.txt") Do (
    Echo %%i>>proba.txt %%j>>proba.txt
    )
     
    в proba.txt:
     
    3я465 download.rar
    251 price.xls
    3я461 NEW.bat
    11я379 Ў ©в
    3я387я854я848 Ў ©в
     
    1. Как убрять "я" в размере файла?
    2. Как убрать последние 2 строчки: ("11я379 Ў ©в"  " 3я387я854я848 Ў ©в") - размер файлов и размер на диске.
    Спасибо...

    Всего записей: 24 | Зарегистр. 13-02-2007 | Отправлено: 09:48 06-10-2010
    res2001



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

    Код:
    for %%i in (*.*) do echo %%~zi %%~dpnxi

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 10:19 06-10-2010 | Исправлено: res2001, 10:21 06-10-2010
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    qwertyuiopa как делать совсем правильно - тебе подсказал res2001, а по твоим вопросам
    Цитата:
    1. Как убрять "я" в размере файла?
    2. Как убрать последние 2 строчки: ("11я379 Ў ©в"  " 3я387я854я848 Ў ©в") - размер файлов и размер на диске.  
    1. можно было добавить ключик /-с в строку dir
    2. вообще-то вывод dir перед обработкой неплохо было профильтровать, чтоб в нем остались только строки с файлами.  
    3. вывод имен подкаталогов - тоже невредно было подавить
    т.е. в твоем варианте первую строку правильнее писать было так:  
    dir /-c /a-d * | findstr /r /b [0-9] > dirka.txt  

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 10:36 06-10-2010 | Исправлено: wolf0425, 11:54 06-10-2010
    qwertyuiopa

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Спасибо ОГРОМНОЕ!!

    Всего записей: 24 | Зарегистр. 13-02-2007 | Отправлено: 13:17 06-10-2010
    BagaBaga

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вопрос. Как при момощи sed из одного файла получить другой путем замены в третьей строке 4х символов с 16ой по 19ю позицию (включительно).
     
    Например, из
     
    11111111111111111111е
    22222222222222222222п
    33333333333333333333и
    444444444444444444444
     
    получить
     
    11111111111111111111е
    22222222222222222222п
    333333333333333АБВГ3и
    444444444444444444444
     
    Добавлено:
     
    Совсем забыл - нумерация строк в файле и символов в строке начинается с 1 (единицы)

    Всего записей: 463 | Зарегистр. 14-11-2005 | Отправлено: 11:04 07-10-2010
    wolf0425



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

    Цитата:
    путем замены в третьей строке 4х символов с 16ой по 19ю позицию (включительно).  

    для примера с  виндовой кодировкой файлов/батника:

    Код:
    @echo off
    chcp 1251
    sed.exe  -r "3 s;^(.{15})....;\1АБВГ;" <file1 >file2

     

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 12:56 07-10-2010 | Исправлено: wolf0425, 12:58 07-10-2010
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Гуру, подскажите, чем отличается использование команды
    Код:
    chcp 1251
    от сохранения батника в DOS кодировке при использовании кириллицы? chcp 1251 всегда будет работать?

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 14:51 07-10-2010 | Исправлено: Free_Soft, 14:55 07-10-2010
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Free_Soft
    При использовании латиницы все равно какая кодировка, хоть УТФ8. Они все в этой части одинаковы.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 14:53 07-10-2010
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добавлено:
    блин, пардон... шарики за ролики. имелось ввиду при использовании кириллицы))

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 14:54 07-10-2010 | Исправлено: Free_Soft, 14:56 07-10-2010
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Free_Soft
    Если ты не обрабатываешь батником другие текстовые файлы, то использование chcp и сохранения в 866 работает одинаково, ну кроме того что и создаваемые батником файлы будут в соответствующей кодировке.
    Но когда начнешь обрабатывать файлы в кодировке 1251 при батнике в 866, тут у тебя все и вылезет.
    Кодировка файлов и батника должна быть одна и та же.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 15:10 07-10-2010
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    т.е. при выводе текста через eсho в кириллице что chcp 1251 что DOS кодировка -все равно?

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 15:19 07-10-2010
    res2001



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

    Цитата:
    т.е. при выводе текста через eсho в кириллице что chcp 1251 что DOS кодировка -все равно?

    Ну да.
    Если chcp 1251, то батник сохраняй в 1251, если chcp не используешь - батник в 866.
     
    Добавлено:
    главное то что? главное что юзер увидел читабельный текст, а не кракозябры.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 15:23 07-10-2010
    wolf0425



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

    Цитата:
    главное то что? главное что юзер увидел читабельный текст, а не кракозябры.

    для того чтоб юзер увидел 1251 без кракозябр - ещё и фонт консоли надо поменять с дефолтового терминала на какой-то уникодный, например на люсиду.
     
    а вообще chcp 1251 ставится когда предполагается работа с текстовыми файлами в виндовой кодировке и возможно что-то надо будет в этой же кодировке напечатать, или когда сам батник пишется в виндовой кодировке.

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 16:00 07-10-2010 | Исправлено: wolf0425, 16:21 07-10-2010
    Dead_Moroz



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Возможно, вопрос и глупый, но:
    на флешке есть каталог OEMINFO, в котором лежат файлы для добавления OEM-информации в "Свойства системы" - oemlogo.bmp, oeminfo.ini - это для WXP; W7.reg - для Windows 7.
    Там же, в этом каталоге лежат примитивнейшие файлы:

    Код:
    @echo off
    copy oeminfo.ini %systemroot\system32% /Y
    copy oemlogo.bmp %systemroot%\system32 /Y
     
    Это для ХР.
     

    Код:
    @echo off
    copy oemlogo.bmp %systemroot%\system32 /Y
    reg import OEMLogoWin7.reg

    Это для W7.
     
    Батник для ХР работает нормально - копирует оба файла в system32. А вот батник для W7 не хочет работать (запускаю его правой кнопкой > "Запустить от имени администратора"). Ругается на то, что не может найти файлы, которые надо скопировать. Если переписать всю папку OEMINFO, скажем, на диск С и изменить батник, чтобы он выглядел так:

    Код:
    @echo off
    copy c:\oemlogo\oemlogo.bmp %systemroot%\system32 /Y
    reg import c:\oemlogo\OEMLogoWin7.reg  

    то тогда работает. Но хотелось бы запускать напрямую с флешки. Как исправить?
    Чую, что надо использовать %~dp0 -

    Код:
    @echo off
    setlocal
    set cpath=%~dp0
    copy <а вот тут не знаю, как правильно приклеить имя файла, который хочу копировать>

    Всего записей: 2265 | Зарегистр. 16-10-2002 | Отправлено: 17:46 07-10-2010 | Исправлено: Dead_Moroz, 17:58 07-10-2010
    smirnvlad

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

    Код:
     
    @echo off
    copy "%~dp0oemlogo.bmp" "%systemroot%\system32" /Y
    reg import "%~dp0OEMLogoWin7.reg"
     

     
    или с переменной.
    setlocal тут не нужен
     

    Код:
     
    @echo off
    set cpath=%~dp0
    copy "%cpath%oemlogo.bmp" "%systemroot%\system32" /Y
    reg import "%cpath%OEMLogoWin7.reg"
     

    Всего записей: 417 | Зарегистр. 31-03-2009 | Отправлено: 18:08 07-10-2010
       

    Страницы: 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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 9
    vu1tur (09-01-2011 11:53): лимит страниц, продолжение — http://forum.ru-board.com/topic.cgi?forum=62&topic=22143


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru