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

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



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

    Цитата:
    Т.е. помимо вывода результатов в окно консоли, дублировать их выводом в текстовый файл.  

    Здесь.
     
     
    Добавлено:
    korosya

    Цитата:
    возможно ли из командной строки изменить версию файла?  

    ResHacker
     
     
     
    Добавлено:
    Simoid

    Цитата:
    Проверяем любой уникальный ID железа на ПК

    devcon (есть в шапке)

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 08:07 01-10-2009
    Smitis



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

    Цитата:
    Господа, возникла крайняя необходимость вести логи комманд, а также хода их выполнения. Т.е. помимо вывода результатов в окно консоли, дублировать их выводом в текстовый файл.  

    Найти клон никсовской команды TEE, например MTEE сдесь

    ----------
    Разум когда-нибудь победит

    Всего записей: 3452 | Зарегистр. 09-02-2003 | Отправлено: 10:43 01-10-2009
    korosya

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

    Цитата:
    ResHacker

     
    ResHacker может заменить тоько весь ресурс целиком, а мне надо заменить только ОДНО слово (предложение). То есть я хочу дать команду типа "Заменить "AkelPad text editor" на "Блокнот" в ресурсе "VersionInfo".

    Всего записей: 1008 | Зарегистр. 19-07-2003 | Отправлено: 11:46 01-10-2009
    voooov

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    неожиданно  возникла такая проблема
     
     
    С:\folder\    содержит:
    Proga.exe
    Zapuskproga.bat  (Start Proga.exe -normal)
     
     
    диск D:\ - я тут нахожусь и пишу в командной строке
    С:\folder\Zapuskproga.bat  и нажимаю энтер
     
    виндовс7 выдает ошибку -  "Proga.exe - не найдена"
     
    станность то что только вчера всё работало
    правда поменял  Proga.exe на новую версию (а всё остальное было так)

    Всего записей: 609 | Зарегистр. 07-02-2006 | Отправлено: 13:49 01-10-2009
    dmitri23



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

    ----------
    Кому не нравиться, тот может выйти покурить, перебьемся так и быть

    Всего записей: 646 | Зарегистр. 02-02-2006 | Отправлено: 14:00 01-10-2009
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    voooov
    У тебя не работает, так как ты запускаешь батник из другой директории. И при запуске этот батник ищет Proga.exe в текущей директории (откуда дал команду). Пропиши в своей запускалке так:

    Код:
     
    start "" "%~dp0Proga.exe"
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 14:20 01-10-2009
    NIKZZZZ



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

    Цитата:
    ResHacker может заменить тоько весь ресурс целиком

    А разве сложно извлечь нужный ресурс (versioninfo), отредактировать его и заменить им прежний?
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 14:21 01-10-2009
    gitars

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть папка с файлами, в том числе и jpg. Нужно переименовать все jpg-файлы, оставив  только 3 последних символа имени, т.е. если имя файла "okcom-0001.jpg", его нужно переименовать в 001.jpg, и так же остальные, длина названий у файлов разная.  
    После этого нужно заархивировать jpg-и в архив rar с профилем stand.
    Получилось вот что:
    -------------------------------------------
    set thePATH=%CD%
    for %%I in (*.jpg) do ren "%thePATH%\%%~nxI" "%%~nI.jpg"
    c:\PF\WinRAR\Rar.exe a -ibck "-cpstand" texts *.jpg
    -------------------------------------------
    только не знаю что подставить вместо  
    "%%~nI.jpg" чтобы получилось только 3 последних символа названия
    и вместо texts *.jpg чтобы имя архива было такое же как и имя папки в котором лежит батник.

    Всего записей: 6 | Зарегистр. 26-11-2005 | Отправлено: 14:48 01-10-2009
    voooov

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    dmitri23
    Цитата:
    может где-нибудь затисался пробел, или какая-нить буква русская.
    хз.. когда сверху в батнике  дописываю CD С:\folder\ всё работет
     
    01MDM
    Цитата:
    батник ищет Proga.exe в текущей директории (откуда дал команду). start "" "%~dp0Proga.exe"
    спасибо.. интересный способ.. не знал.. только непонятно почему батник только недавно искал где надо.. чудеса..

    Всего записей: 609 | Зарегистр. 07-02-2006 | Отправлено: 15:34 01-10-2009
    korosya

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

    Цитата:
    А разве сложно извлечь нужный ресурс (versioninfo), отредактировать его и заменить им прежний?  

    Подскажи, пожалуйста, как это сделать из командной строки?

    Всего записей: 1008 | Зарегистр. 19-07-2003 | Отправлено: 15:42 01-10-2009
    gitars

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    нашла как сделать имя архива такое же как у папки, вот что получилось:
    ---------------------------------------------------------------------------------
    set thePATH=%CD%
    for %%I in (*.jpg) do ren "%thePATH%\%%~nxI" "%%~nI.jpg"
     
    c:\PF\WinRAR\Rar.exe a -ibck "-cpstand" PAT *.jpg
     
    @echo on
    setlocal enabledelayedexpansion
    pushd ..
    call :find_dir "%thePATH%"
    popd
    echo %parent_dir%
    goto :EOF
    :find_dir
    set "parent_dir=%~nx1"
     
    ren "%thePATH%\PAT.rar" "%parent_dir%.rar"
    ---------------------------------------------------------------------------------
     
    кто-нибудь знает все-таки как оставить в именах файлов только 3 последних символа?
     
    Имена  всех файлов в основном такого типа:
    "mmtaobookco-taobookco0-0070.jpg"
    "aobookcomm-1aobookcom-0071.jpg"

    Всего записей: 6 | Зарегистр. 26-11-2005 | Отправлено: 18:54 01-10-2009 | Исправлено: gitars, 19:18 01-10-2009
    01MDM



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

    Цитата:
    кто-нибудь знает все-таки как оставить в именах файлов только 3 последних символа?  


    Код:
     
    @echo off
    for %%i in (*.jpg) do call:ren "%%i"
    goto:eof
     
    :ren
    set "oldname=%~n1"
    ren %1 "%oldname:~-3%%~x1"  
     

    Узнать название текущей директории можно так:

    Код:
     
    @echo off
    for %%i in ("%cd:\=","%") do set "name=%%i"
    echo %name%
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 19:53 01-10-2009
    NIKZZZZ



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

    Цитата:
    "Заменить "AkelPad text editor" на "Блокнот" в ресурсе "VersionInfo"

    Примерно так:
     

    Код:
    reshacker -extract c:\windows\notepad.exe,info.res,versioninfo,,
    reshacker -delete AkelPad.exe,AkelPad.exe,versioninfo,,
    reshacker -add AkelPad.exe,AkelPad.exe,info.res,versioninfo,,

     
    Важно - AkelPad.exe не должен быть упакован!

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 23:51 01-10-2009 | Исправлено: NIKZZZZ, 23:57 01-10-2009
    gitars

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    спасибо, отлично работает, только код для названия текущей дирректории потом ругается на ren "%thePATH%\PAT.rar" "%name%.rar", поэтому эту часть оставила прежней, хоть она намного длиннее вашей
    кстати, код по переименованию предложили еще такой:
    ----------------
    setlocal ENABLEDELAYEDEXPANSION
    for %%I in (*.jpg) do (
    set d=%%~nI
    set d=!d:~-3!
    ren %%I !d!.jpg
    )
    ----------------
    в любом случае они оба работают

    Всего записей: 6 | Зарегистр. 26-11-2005 | Отправлено: 08:16 02-10-2009
    korosya

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ
    А где в твоём примере замена "AkelPad text editor" на "Блокнот"?

    Всего записей: 1008 | Зарегистр. 19-07-2003 | Отправлено: 11:24 02-10-2009 | Исправлено: korosya, 12:59 02-10-2009
    NIKZZZZ



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

    Цитата:
    А где в твоём примере замена "AkelPad text editor" на "Блокнот"?

    Ресурс извлекается из Notepad.exe и им заменяется соответствующуй ресурс в AkelPad, то-есть он становится блокнотом.

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    gitars
    Что-то я все перепутал, конечно проще определить название текущей папки так:

    Код:
     
    for %%i in (%cd%) do set "name=%%~nxi"
     

     

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



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Помогите с задачей пожалуйста
     
    нужно скопировать все фйлы
    из - dir/filename.* в - dir2/filename.*
    сделать ярлык на каждый копируемый файл
    в - dir3/filename.lnk на dir2/filename.*
     
    чтобы имена ярлыков совпадали с именами файлов

    Всего записей: 85 | Зарегистр. 23-04-2003 | Отправлено: 12:40 02-10-2009
    korosya

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

    Цитата:
    Ресурс извлекается из Notepad.exe и им заменяется соответствующуй ресурс в AkelPad, то-есть он становится блокнотом.  

    И какая версия и копирайты становятся тогда у AkelPad-а?

    Всего записей: 1008 | Зарегистр. 19-07-2003 | Отправлено: 12:56 02-10-2009 | Исправлено: korosya, 12:57 02-10-2009
    othy

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите как sed-ом склеить последовательность строк:
    тын-ды-00
    1
    или, если такая последовательность, как удобней
    1
    тын-ды-00
    и т.д., чтобы получить одну строку типа:
    1|тын-ды-00
    где 1,2,3.. - номера строк, просто сразу в одну строку выборку сделать тоже не выходит

    Всего записей: 62 | Зарегистр. 28-11-2005 | Отправлено: 15:26 02-10-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