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

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

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

vu1tur (26-05-2009 11:39): часть 7 — http://forum.ru-board.com/topic.cgi?forum=62&topic=17154#1  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

vu1tur



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

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

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





    http://forum.ru-board.com/topic.cgi?forum=62&topic=17154

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 23:07 04-11-2008 | Исправлено: vu1tur, 11:38 26-05-2009
    korosya

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

    Цитата:
    Если требуется объединить несколько двоичных файлов в один с использованием подстановочных знаков, воспользуйтесь параметром /b. В результате CTRL+Z не будет рассматриваться как символ конца файла в Windows XP. Например, введите следующую команду:  
     
    copy /b *.exe combin.exe  
     
     

    Эта цитата из справки Windows.

    Всего записей: 1005 | Зарегистр. 19-07-2003 | Отправлено: 22:41 19-01-2009
    FsUsT

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    korosya
    Просто не  могу понять как указать БАТ-файлу на наличие первого файла из пачки и что б он подхватил остальные, стандартная команда file1+file2....file24 помоему не подходит тут Да и указанные вами подстановочные знаки тоже надо уметь ставить, в чем я не особо силен

    Всего записей: 5 | Зарегистр. 16-01-2009 | Отправлено: 08:49 20-01-2009
    Rz8

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    Энное количество страниц назад ты рекомендовал мну 4DOS. А не мог бы ты просветить меня как бы мне создать загрузочную дискету с ним, а то я тупо прописал в config.sys SELL=A:\4DOS\4DOS.COM, но он тогда не грузит autoexec.bat. И даже если я вручную гружу autoexec, то после загрузки Volkov Commander оболочкой снова становится command.com.

    Всего записей: 3 | Зарегистр. 29-12-2008 | Отправлено: 09:42 20-01-2009
    demon1981



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir
    у меня там Подробнее... стоит разделитель табуляция(после delims= стоит TAB). Если поставить пробел дополнительным разделителем или еще раз строку через разбор пропустить но с разделителем пробелом, то разбор удалит пробелы в начале, но он и отбросит части директорий если в их именах были пробелы я таким макаром пробовал удалить пробелы в начале, но тогда моим способом получаются пробелы в конце
    Не знаю, что и делать есть совет?

    Всего записей: 189 | Зарегистр. 28-03-2007 | Отправлено: 13:59 20-01-2009
    01MDM



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

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



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

    Код:
    @echo off
    chcp 1251>nul
    del temp.txt>nul
    for /f "tokens=1-10 delims= " %%i in (fromreg.txt) do (
    echo %%i %%j %%k %%l %%m %%n %%o %%p>>temp.txt
    )
    move /y temp.txt fromreg.txt
    call removespaces.vbs fromreg.txt

    сделал удаление пробелов концевых и начальных в файле сформированным так  

    Код:
    @echo off
    chcp 1251>nul
    del fromreg.txt>nul
    for /f  "tokens=1-3 delims=    " %%d in ('reg query hkcu\Software\1c\1cv7\7.7\titles^|find /i "reg_sz"') do (
    echo %%d>>fromreg.txt
    rem echo %%f>>fromreg.txt
    )
     

    скрипт removespaces.vbs взял из шапки
    есть у кого мысли по улучшению сего деяния? решение получилось ограниченное. На самом деле не понятно сколько кому вздумается в пути к базенке пробелов вставить. Данный скрипт расчитан на примерно 10 пробелов. Вроде достаточно...
    хорошо автоматом базы 1С все бэкапить будет чисто встроенными средствами

    Всего записей: 189 | Зарегистр. 28-03-2007 | Отправлено: 15:25 20-01-2009 | Исправлено: demon1981, 15:27 20-01-2009
    korosya

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    FsUsT
    copy /b *.mom combin.mom - сложение всех файлов с расширением mom  в один combin.mom
     
    copy /b 0119*.mom combin.mom - сложение всех файлов за 01.19 с расширением mom  в один combin.mom

    Всего записей: 1005 | Зарегистр. 19-07-2003 | Отправлено: 20:29 20-01-2009
    FuZZion

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите решить, на первый взгляд тривиальную задачу. Есть файл *.txt. Мне нужно написать батник, который будет убирать вначале 10-й строки ";" и поставить её в начало 11-й строки. И второй, который будет возвращать ";" в 10-ю строку и убирать с 11-й. Спасибо.

    Всего записей: 15 | Зарегистр. 12-11-2007 | Отправлено: 11:07 21-01-2009
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    FuZZion
    C помощью sed.exe:

    Код:
     
    ::1-ый
    sed -i -e "10 s/^;//" -e "11 s/^/;/" 1.txt
     
    ::2-ой
    sed -i -e "10 s/^/;/" -e "11 s/^;//" 1.txt
     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 12:34 21-01-2009
    FuZZion

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    Спасибо ) Это уже что-то. Но на "i" в комманде ругается. Убрал "i" - ругаться перестал. Зачем она? И после выполнения комманды в коммандной строке выдаёт файл как-буд-то изменённый, а на самом деле (когда открываю файл 1.txt) ничего не изменилось ((. Может как-то надо делать "save"? И что это за sed.exe вообще? Где про него и его комманды можно прочесть?

    Всего записей: 15 | Зарегистр. 12-11-2007 | Отправлено: 12:48 21-01-2009 | Исправлено: FuZZion, 12:49 21-01-2009
    Nagual



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

    Цитата:
    Только не понятно, почему не запускается в разных режимах пробовал следующие значения 0,2,6.

    0 - скрытое окно.
    1 - нормальное окно.
    2 - минимизированное окно.
    3 - максимизированное окно.
    4 - запустить приложение с окном в том состоянии, в котором оно было последний раз. Текущее активное окно останется активным.
    5 - запустить приложение с окном в текущем состоянии.
    7 - минимизированное окно. Текущее активное окно останется активным.
    10 - состояние окна по умолчанию для приложения.

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 12:51 21-01-2009
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    FuZZion
    Ключ -i служит для перезаписи исходного файла, скорее всего у тебя какой-то не тот sed:
     

    Цитата:
     
     > sed --version
    GNU sed версия 4.1.5
    Copyright (C) 2003 Free Software Foundation, Inc.
    Это свободное программное обеспечение; условия его копирования смотрите в
    исходных текстах. Не предоставляется НИКАКОЙ гарантии; даже гарантии
    ПРИГОДНОСТИ ДЛЯ ПРОДАЖИ или ПРИМЕНИМОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ, в той мере,
    в которой это может быть допущено законодательством.
     
     >
     


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



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

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 12:58 21-01-2009
    01MDM



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

    Код:
     
    ::1
    sed -n -e "1,9 p" -e "10 s/^;//p" -e "11 s/^/;/p" -e "12,$ p" 1.txt | more 1>1.tmp
    move 1.tmp 1.txt
     
    ::2
    sed -n -e "1,9 p" -e "10 s/^/;/p" -e "11 s/^;//p" -e "12,$ p" 1.txt | more 1>1.tmp
    move 1.tmp 1.txt
     

     
    Через `more` для того, чтобы сохранялись переносы строк в формате windows.

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 13:42 21-01-2009
    FuZZion

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

    Цитата:
    у тебя какой-то не тот sed:

     
    Верно - не тот ( У меня ключ -i не поддерживается. Подскижи где можно *.exe версии 4.1.5 скачать?

    Всего записей: 15 | Зарегистр. 12-11-2007 | Отправлено: 13:47 21-01-2009
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    FuZZion
    http://gnuwin32.sourceforge.net/packages/sed.htm

    ----------
    "В интернете есть все, но не всегда"

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 15:16 21-01-2009
    FuZZion

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir
    спасибо, но там нет exe-файла..
    Скачал отсюда http://sed.sourceforge.net/  
    вот этот вариант super sed v3.59 for Windows
    Теперь работает с
    Цитата:
    sed -i -e "10 s/^;//" -e "11 s/^/;/" 1.txt

    но всё равно не изменяет мой файл, а создаёт новый изменённый "sedDOSSUX" в этой-же директории. Ну что за беда (
     

    Всего записей: 15 | Зарегистр. 12-11-2007 | Отправлено: 15:26 21-01-2009
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    FuZZion
    Версии 3.xx не поддерживают изменения исходного файла. По адресу, который я дал - все есть. Внизу страницы скачай либо "Complete package, except sources", либо "Binaries" вместе с "Dependencies". Если после нажатия не начинается закачка файлов - смени зеркало, с которого ты скачиваешь.

    ----------
    "В интернете есть все, но не всегда"

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 15:43 21-01-2009
    igor_andreev

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    FuZZion
    Возьми версию 3.62 http://sed.sourceforge.net/grabbag/ssed/
    и указывай расширение для переименования исходного файла:
    sed -i.bak -e ...
    Elroir
    А как вы умудряетесь 4-версиями пользоваться, они же скабрезно и с надругательством обходятся со знаками переноса строки. Или обычным виндовым блокнотом никто не пользуется?

    Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 16:08 21-01-2009
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    igor_andreev
    Я ими не пользуюсь - только советую


    ----------
    "В интернете есть все, но не всегда"

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 16:28 21-01-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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 6
    vu1tur (26-05-2009 11:39): часть 7 — http://forum.ru-board.com/topic.cgi?forum=62&topic=17154#1


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru