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

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

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

vu1tur (29-07-2011 12:47): Задачи на bat-файлах 11
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

vu1tur



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

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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:53 09-01-2011 | Исправлено: mazafakermazafaka, 11:22 04-06-2011
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    fire4x
    Ты хочешь весь файл транслитерировать?
    Поищи лучше утилиту, их полно. Гугл в помощь. Кстати на vbs/js это делается очень легко, гораздо красивее чем на батниках.
     
    set /p word=file.txt
    для однострочного файла
    Для многострочного надо в цикл загнать:

    Код:
    for /f "tokens=* delims=" %%a in (file.txt) do (
        echo.%%a
    )

    В переменной цикла %%a каждую итерацию цикла будет находится одна строка из файла.
    for /?
     
     
     
    Добавлено:
    Что переменную цикла использовать для замены, надо ее присвоить обычной переменной и заменять уже в обычной переменной, только для этого надо использовать оператор
    setlocal enabledelayedexpansion
    и ! вместо %, т.е. так:
     

    Код:
    setlocal enabledelayedexpansion
    for /f "tokens=* delims=" %%a in (file.txt) do (
        set "word=%%a"
        SET "word=!word:ж=zh!"  
    )  

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 20:52 17-06-2011
    fire4x



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

    Цитата:
    Код:setlocal enabledelayedexpansion  
    for /f "tokens=* delims=" %%a in (file.txt) do (  
        set "word=%%a"  
        SET "word=!word:ж=zh!"  
    )  

    Не хочет работать.

    Цитата:
    Кстати на vbs/js это делается очень легко, гораздо красивее чем на батниках.

    Спасибо за подсказку. Осталось найти умельцев...
     

    Всего записей: 503 | Зарегистр. 25-02-2008 | Отправлено: 21:32 17-06-2011
    wolf0425



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

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 21:37 17-06-2011 | Исправлено: wolf0425, 21:42 17-06-2011
    RSEREGAR



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

    Цитата:
    Если скажешь, что и куда прописывать в реестре можно помочь и с правильной командой.  

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts\Название шрифта (TrueType)
    Можно и локально. Скопировать и запустить удаленно батник смогу.
     

    Всего записей: 705 | Зарегистр. 26-10-2008 | Отправлено: 22:01 17-06-2011 | Исправлено: RSEREGAR, 23:03 17-06-2011
    res2001



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

    Цитата:
    Не хочет работать.  

    Ну естественно не хочет Точнее ничего не выводит. Оператора вывода то нет.

    Код:
    @echo off
    setlocal enabledelayedexpansion  
    for /f "tokens=* delims=" %%a in (file.txt) do (  
        set "word=%%a"  
        echo !word:ж=zh!
    )  

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 22:43 17-06-2011
    fire4x



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

    Цитата:
    Ну естественно не хочет  Точнее ничего не выводит. Оператора вывода то нет.  
     
    Код:@echo off  
    setlocal enabledelayedexpansion    
    for /f "tokens=* delims=" %%a in (file.txt) do (    
        set "word=%%a"    
        echo !word:ж=zh!  
    )  

    И так не хочет.
    P.S. Сюда, наверное, нужно еще дописать имя файла, в который все это запишется?

    Всего записей: 503 | Зарегистр. 25-02-2008 | Отправлено: 23:59 17-06-2011
    01MDM



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

    Цитата:
    Вот, например, одна из команд ImageMagick для одного файла:
    convert file_in.png -background black -channel A -combine file_out.png

    Подставь в батник эту строку:

    Код:
     
    convert "%%i" -background black -channel A -combine "c:\new_name%%~pnxi"
     



    ----------
    Вопросы в личке останутся без ответа

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 00:54 18-06-2011
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    По транслитерации был готовый батник в старых темах, поиском в версии для печати можно найти.

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 10:03 18-06-2011
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    omamont
    sed -r -i "s;^\*;;gi" urlfilter.ini  
     
    sed.exe в шапке или в яндексе

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 10:15 18-06-2011
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vertigoavi
    Код:
    @echo off
    chcp 1251>nul
    set
    "s=c:\name"
    set "d=c:\name_new"
    robocopy/mir "%s%" "%d%"
    for /r "%s%" %%a in (*) do for /r "%d%" %%b in (*) do echo convert -normalize "%%a" "%%b"
     
    в переменных укажи свои пути
    укажи нужную утилиту вместо convert
    если командный сценарий лежит не в папке с утилитой или утилиты нет в %path% добавь к утилите её полный путь
    в параметрах укажи свои параметры
    если всё нормально, сними с предохранителя, убрав в последней строке echo

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 12:16 18-06-2011 | Исправлено: Nagual, 12:24 18-06-2011
    vertigoavi

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    Сам .bat рабочий, а проблема в том, что ImageMagick неправильно работает... Не знаю, в чем именно проблема, но я получаю просто полностью черную картинку вместо изображения... Т. е. выходит, что команда не работает целиком, а только частично.

    Прошу прощения. Все нормально. Я по ошибке прописал путь к неправильному каталогу с изображениями

    Всего записей: 184 | Зарегистр. 16-07-2006 | Отправлено: 12:25 18-06-2011 | Исправлено: vertigoavi, 12:40 18-06-2011
    res2001



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

    Цитата:
    И так не хочет.
    P.S. Сюда, наверное, нужно еще дописать имя файла, в который все это запишется?

    В таком варианте только вывод на экран.
    Надо в файл, пожалуйста, добавь перенаправление.
    Ты уже столько вопросов задал, что уже пора самому сообрзить что к чему

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 12:32 18-06-2011
    vertigoavi

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Nagual
    А смысл такого скрипта? Это же простое копирование исходных файлов и последующая их обработка, если я правильно понимаю. Скопировать папку я и сам могу... Только вот если там тысячи файлов, то это будет долго...

    Всего записей: 184 | Зарегистр. 16-07-2006 | Отправлено: 12:42 18-06-2011
    omamont

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425 08:15 18-06-2011
    Цитата:
    omamont  
     sed -r -i "s;^\*;;gi" urlfilter.ini
     sed.exe в шапке или в яндексе

    Спасибо - решилось проше

    Всего записей: 3438 | Зарегистр. 12-01-2007 | Отправлено: 13:07 18-06-2011
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vertigoavi копирование используется для сохранения исходников, а также для операций вида
    команда исходник назначение
    а вообще, на будущее, задача написана для телепатов

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 13:56 18-06-2011
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    RSEREGAR
    Вот такая команда:
    reg.exe add "\\<IP адрес удаленного компа>\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" /v "Название шрифта (TrueType)" /t REG_SZ /d "file.ttf"
     
    Значения поменяешь, на те что тебе нужны.
    Чтоб ее же локально использовать уберешь \\<IP адрес удаленного компа>\

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 14:02 18-06-2011
    vertigoavi

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Nagual
    В варианте решения 01MDM исходники не страдают. Но само решение тоже не идеальное, как мне кажется (хотя я могу и ошибаться).

    Всего записей: 184 | Зарегистр. 16-07-2006 | Отправлено: 14:20 18-06-2011
    RSEREGAR



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

    Всего записей: 705 | Зарегистр. 26-10-2008 | Отправлено: 14:36 18-06-2011
    fire4x



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

    Цитата:
    Цитата:И так не хочет.  
    P.S. Сюда, наверное, нужно еще дописать имя файла, в который все это запишется?  
     
     
    В таком варианте только вывод на экран.  
    Надо в файл, пожалуйста, добавь перенаправление.  
    Ты уже столько вопросов задал, что уже пора самому сообрзить что к чему

    Если бы еще знать как добавить перенаправление и куда его добавить...

    Всего записей: 503 | Зарегистр. 25-02-2008 | Отправлено: 20:17 18-06-2011
    res2001



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

    Цитата:
    Если бы еще знать как добавить перенаправление и куда его добавить...  

    Операторы перенаправления вывода: > и >> Первый создает новый файл, даже если он уже существует, второй добавляет в существующий или создает новый, если файла нет.

    Код:
    >file.txt echo Этот текст будет в file.txt

     
    вот тут неплохо написано и про перенаправление в т.ч. и про другие интересные вещи.
    start "" hh ntcmds.chm
    Я тебе уже вроде давал эту команду. Не читаешь?

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 21:07 18-06-2011
       

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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 10
    vu1tur (29-07-2011 12:47): Задачи на bat-файлах 11


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru