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

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



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как добавить символы в начало текстового файла ?
     
    Как удалить с конца текстового файла заданное количество символов ?

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



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

    Цитата:
    Как добавить символы в начало текстового файла ?  
    создать новый файл
    записать в него символы
    скопировать старый файл в конец нового
    переименовать новый в старый
     

    Цитата:
     Как удалить с конца текстового файла заданное количество символов ?
    в смысле - из конца последней строки?
    sed.exe в помощь (первый варант седом тоже в одну строку решается).
     

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 00:26 15-06-2011
    fire4x



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

    Цитата:
    Цитата:Как добавить символы в начало текстового файла ?  
     
    создать новый файл  
    записать в него символы  
    скопировать старый файл в конец нового  
    переименовать новый в старый  
     

    А по-короче ничего не существует?
    Если можно добавить текст в конец файла, то наверное можно как-то и в начало его всунуть. Или нет?
    В результате копирования старого файла в конец нового появляется лишний символ в конце. Как его убрать?
     
    Допустим, что это - содержимое текстового файла:

    Код:
    123456789

    Возможно ли преобразовать его только с помощью бат-файла в:

    Код:
    0123456789

    или

    Код:
    12345

     
    А если нет, то возможно ли осуществить это скриптом (vbs, js,...)

    Всего записей: 503 | Зарегистр. 25-02-2008 | Отправлено: 01:59 15-06-2011 | Исправлено: fire4x, 03:04 15-06-2011
    ShamanNeo



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите пожалуйста решить задачу:
    Мне нужно сделать bat файл,который в тихом режиме,без окон и запросов завершит процесс приложения(например My Soft.exe), запустит приложение(в папке с bat файлом),дождется его завершения,а затем запустит 2 приложение(в папке с bat файлом) и завершит свою работу,не дожидаясь его завершения.
    Для зевершения процессов есть PsKill,но как сделать рабочий bat с такими требованиями я не соображу...
    Сообразил только на это:
    @ECHO OFF
     
    ECHO.
    PsKill.exe My Software.exe (в имени есть пробелы)
    echo.
    start /wait Program.exe
    start My Software.exe (в имени есть пробелы)
    ECHO.
    EXIT
     
    Все действия происходят на локальном ПК.
    Помогите довести bat файл до рабочего состояния...

    Всего записей: 54 | Зарегистр. 04-02-2011 | Отправлено: 07:39 15-06-2011
    wolf0425



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

    Цитата:
    А по-короче ничего не существует?  
    для общего случая - нет, для случая файла из одной строки - можно и покороче придумать.

    Цитата:
    В результате копирования старого файла в конец нового появляется лишний символ в конце. Как его убрать?  
    а почему у меня не появляется? символ то какой?
     
     
    Добавлено:
    ShamanNeo

    Цитата:
    PsKill.exe My Software.exe (в имени есть пробелы)  
    если есть пробелы - значит имя обязательно заключать в кавычки.
    А в комманде start - при этом ещё и обязательно указывать заголовок окна:
    start ""  "My Software.exe"

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 08:10 15-06-2011 | Исправлено: wolf0425, 08:18 15-06-2011
    fire4x



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

    Цитата:
    Цитата:А по-короче ничего не существует?  
     
    для общего случая - нет, для случая файла из одной строки - можно и покороче придумать.

    Придумайте, пожалуйста.

    Цитата:
    Цитата:В результате копирования старого файла в конец нового появляется лишний символ в конце. Как его убрать?  
     
    а почему у меня не появляется? символ то какой?

    Такой ->.

    Код:
    copy /a /y 1.txt+2.txt 3.txt

    P.S. А что с удалением последнего (последних) символов из файла силами бат-файла/скрипта? Это возможно?
     
     

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



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

    Цитата:
    Такой ->.  

    Копируешь командой copy fil1+fil2 fil3 ?
    Тогда это скорее всего из-за ключа /a который если и не указан, то действует по умолчанию.
    Замени его на ключ /b - должно быть все нормально.

    Цитата:
    P.S. А что с удалением последнего (последних) символов из файла силами бат-файла/скрипта? Это возможно?

    Файл однострочный?

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



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

    Цитата:
    Копируешь командой copy fil1+fil2 fil3 ?  
    Тогда это скорее всего из-за ключа /a который если и не указан, то действует по умолчанию.  
    Замени его на ключ /b - должно быть все нормально.

    Спасибо, получилось.
    Цитата:
    Цитата:P.S. А что с удалением последнего (последних) символов из файла силами бат-файла/скрипта? Это возможно?  
     
     
    Файл однострочный?

    Да.
    А с многострочными такие финты тоже можно делать? Если да, то как?
     

    Всего записей: 503 | Зарегистр. 25-02-2008 | Отправлено: 14:42 15-06-2011 | Исправлено: fire4x, 14:43 15-06-2011
    res2001



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

    Цитата:
    А с многострочными такие финты тоже можно делать? Если да, то как?  

    Да можно по всякому. Просто тут готовых рецептов нет, надо каждую конкретную ситуацию рассматривать отдельно.
    Для однострочного файла так:

    Код:
    set /p ff=<file.txt
    >file.txt echo.%ff:~,-1%

    Регулировать количество убираемых символов можно параметром -1, ну т.е. сейчас это 1 символ.
    Вообще смотри set /?, там описан этот синтаксис.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 15:15 15-06-2011 | Исправлено: res2001, 15:16 15-06-2011
    fire4x



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

    Цитата:
    Вообще смотри set /?, там описан этот синтаксис.

    Пытался читать. Ничего не понял... кроме того, что это не мой уровень.
     

    Цитата:
    Код:set /p ff=<file.txt  
    >file.txt echo.%ff:~,-1%

    А если понадобится удалить первый символ (или несколько)?
     

    Цитата:
    Цитата:А с многострочными такие финты тоже можно делать? Если да, то как?  
     
     
    Да можно по всякому. Просто тут готовых рецептов нет, надо каждую конкретную ситуацию рассматривать отдельно.

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

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



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

    Цитата:
    А если понадобится удалить первый символ (или несколько)?  

    %ff:~NN,MM% - где NN - начальный символ, MM - сколько символов.
    Но это для вырезания подстроки в MM символов начиная с NNого символа (первый символ нулевой).
    В нашем варианте трактуется так - взять всю строку за исключение последнего символа.
    Что убрать первый символ, будет так: %ff:~1,%
    NN или MM могут отсутствовать.

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

    Можно сделать и универсальный вариант.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 16:27 15-06-2011 | Исправлено: res2001, 19:20 15-06-2011
    p3west



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите создать батник на запуск архиватора.Чтобы он читал архив в одной папке,а разархивировал в другую.
     
    Спасибо

    Всего записей: 12 | Зарегистр. 05-10-2009 | Отправлено: 17:08 15-06-2011
    fire4x



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

    Цитата:
    Что убрать первый символ, будет так: %ff~:1,%


    Код:
     
    set /p ff=<file.txt  
    >file.txt echo.%ff~:1,%
     
    Так не работает - любой текст превращается в "1,".

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

    Хотелось бы взглянуть на универсальный...

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



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    p3west
    Ну я же вам в другой теме намекнул, что хоть краткость и сестра таланта, но враг техзадания.
    А то получите в ответ на вашу просьбу нечто из такого разряда:

    Код:
     
    echo off
    архиватор путь_до_архива путь_до_каталога_куда_надо_разархивировать


    ----------
    Очень скоро еда станет совершенно безвкусной, и тогда этот недостаток придётся компенсировать хорошо развитым воображением.

    Всего записей: 6714 | Зарегистр. 29-04-2009 | Отправлено: 17:30 15-06-2011
    p3west



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

    Цитата:
    Не понимаю что не так я спросил...

     
     
    Добавлено:

    Цитата:
    Хорошо,скажу так.Мне нужен образец написания.

     
    Добавлено:
    Мне нужен образец написания. Решил так написать потому что тут вроде понимающие люди и что-то типа
    Код:
     
    echo off
    архиватор путь_до_архива путь_до_каталога_куда_надо_разархивировать
    писать не будут...

    Всего записей: 12 | Зарегистр. 05-10-2009 | Отправлено: 18:08 15-06-2011 | Исправлено: p3west, 18:18 15-06-2011
    fire4x



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

    Цитата:
    Цитата:Не понимаю что не так я спросил...  
     
     
     
     
    Добавлено:  
     
    Цитата:Хорошо,скажу так.Мне нужен образец написания.  
     
     
     
    Добавлено:  
    Мне нужен образец написания. Решил так написать потому что тут вроде понимающие люди и что-то типа  
    Код:  
    echo off  
    архиватор путь_до_архива путь_до_каталога_куда_надо_разархивировать  
     
    писать не будут...

    Что ты попросил:
    Цитата:
    Помогите создать батник на запуск архиватора.Чтобы он читал архив в одной папке,а разархивировал в другую.

    То и получил:
    Цитата:
    Код:  
    echo off  
    архиватор путь_до_архива путь_до_каталога_куда_надо_разархивировать

     

    Всего записей: 503 | Зарегистр. 25-02-2008 | Отправлено: 18:24 15-06-2011 | Исправлено: fire4x, 18:27 15-06-2011
    p3west



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

    Всего записей: 12 | Зарегистр. 05-10-2009 | Отправлено: 18:27 15-06-2011 | Исправлено: p3west, 18:27 15-06-2011
    urodliv



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

    Цитата:
    Это вы считаете помощь в создании батника раз ответом такая лажа пишется?

    "Помоги себе сам" - кажется так говорится? А вот вы не хотите себе помочь. Вы живёте в мире, где есть только один архиватор?

    ----------
    Очень скоро еда станет совершенно безвкусной, и тогда этот недостаток придётся компенсировать хорошо развитым воображением.

    Всего записей: 6714 | Зарегистр. 29-04-2009 | Отправлено: 18:37 15-06-2011
    wolf0425



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

    Цитата:
    set /p ff=<file.txt  
    >file.txt echo.%ff~:1,%
     
    Так не работает - любой текст превращается в "1,".
     
    логично: ~ ставится после : а не перед, видно же по предыдущим, работающим примерам (и по  set /?)
     
     
    Добавлено:
    p3west
    Цитата:
    Интересно.Это вы считаете помощь в создании батника раз ответом такая лажа пишется
    почему лажа? реальный батник для абстрактного архиватора с именем "архиватор", разархивирующего без доп ключей указанный ему файл в указанный путь...
    Хочешь для какого-то более другого архиватора - уточняешь свой вопрос, а лучше -  попросту прочитай хэлп по своему архиватору, там гарантированно есть примеры.

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 18:48 15-06-2011 | Исправлено: wolf0425, 18:54 15-06-2011
    A1eksandr1



    Модератор
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Добрый вечер. Такой вопрос:
    Можно ли не прибегая к дополнительным утилитам/файлам автоматически изменить высоту cmd окошка.
    Стандартная высота 25, если создать на бат файл ярлык и вызвать его свойства, то там в закладке расположение можно изменить высоту, хотелось бы достичь того же не прибегая к созданию ярлыка
     
    res2001
    Спасибо, помогло

    Всего записей: 7330 | Зарегистр. 10-12-2007 | Отправлено: 19:01 15-06-2011 | Исправлено: A1eksandr1, 22:12 15-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