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

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

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

vu1tur (04-09-2010 17:46): http://forum.ru-board.com/topic.cgi?forum=62&topic=21297  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199

   

vu1tur



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

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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 12:40 25-01-2010 | Исправлено: bomzzz, 13:37 20-08-2010
    AnGo



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

    Цитата:
    давай догадаюсь

    Не надо догадываться. Чуть ниже строка приведена, чукча должен быть не только писателем, но и немножко читателем!
     
    Остальное поскипано.
     
     
    Добавлено:
    Всем принявшим участие в обсуждении - спасибо!
    Проблема решена. Сам ошибся.

    Всего записей: 1078 | Зарегистр. 07-07-2002 | Отправлено: 18:52 17-05-2010 | Исправлено: AnGo, 19:01 17-05-2010
    Mark_Titov



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

    Код:
    @echo off  
    psexec -s \\comp_name -i cmd.exe /c start c:10.wav

    ...удаленная машина стоит практически всегда в режиме LOGOFF, там запускается Aimp2 и все прекрасно работает, но нужно что бы плеер запускался в скрытом режиме, а то потом когда логинишья на нее там по несколько копий плеера висит.
    Как это можно реализовать, что и куда прописать?
     
    Еще раз спасибо...

    Всего записей: 387 | Зарегистр. 12-04-2010 | Отправлено: 19:21 17-05-2010 | Исправлено: Mark_Titov, 19:29 17-05-2010
    BagaBaga

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как можно сделать вывод на экран '<<' и '>>'
    разумеется, если делать echo << - результата не будет

    Всего записей: 463 | Зарегистр. 14-11-2005 | Отправлено: 23:29 17-05-2010
    01MDM



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

    Код:
     
    echo ^>^> ^<^<
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 04:47 18-05-2010
    BagaBaga

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

    Всего записей: 463 | Зарегистр. 14-11-2005 | Отправлено: 11:00 19-05-2010
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, как в скрипте установить свое значение ERRORLEVEL, а потом отменить это назначение?

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 11:40 19-05-2010
    meating

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

    Код:
    @echo off
    set NAME=film
    ffmpeg -i %NAME%.avi -acodec libfaac -ab 192k -vcodec libx264 -b 800k -bt 800k -threads 0 %NAME%.mp4

    Как сделать чтобы не нужно было вписывать имена нескольких файлов.
    Например мне нужно скодировать большое кол-во файлов в этой папке с расширением avi, и на выходе получить другое расширение. Наивно пробовал ffmpeg -i *.avi, но на выходе получается .mp4 который перезаписывается

    Всего записей: 7 | Зарегистр. 27-06-2008 | Отправлено: 12:33 19-05-2010
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Free_Soft
    Цитата:
    Подскажите, как в скрипте установить свое значение ERRORLEVEL,

    Код:
    @echo off
    call :err 235
    echo %errorlevel%
    cd .
    echo %errorlevel%
    exit
     
    :err
    exit /b %1

    Цитата:
    а потом отменить это назначение?
    действует последнее назначенное.
     
    BagaBaga
    Цитата:
    Как удалить из всех строк текстового файла лидирующие и завершающие пробелы?  
    sed -r -e "s/^ +//g" -e "s/ +$//g" <file1.txt >file2.txt  
     
    meating
    Цитата:
    Как сделать чтобы не нужно было вписывать имена нескольких файлов.  
    for /?

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 12:39 19-05-2010 | Исправлено: wolf0425, 12:44 19-05-2010
    BagaBaga

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

    Всего записей: 463 | Зарегистр. 14-11-2005 | Отправлено: 12:51 19-05-2010 | Исправлено: BagaBaga, 12:52 19-05-2010
    king_stiven

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

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 14:02 19-05-2010
    mugil_cephalus

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

    Цитата:
    Подскажите, как в скрипте установить свое значение ERRORLEVEL, а потом отменить это назначение?

    можно только на время одного сеанса работы консоли

    Код:
    echo.%date%
    echo.%errorlevel%
    set "errorlevel=-692"
    echo.%date%
    echo.%errorlevel%
    rem здесь скрипт
    pause
    set "errorlevel="
    echo.%date%
    echo.%errorlevel%
    pause

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 16:05 19-05-2010
    Joo1z



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

    Всего записей: 123 | Зарегистр. 17-02-2009 | Отправлено: 16:11 19-05-2010
    BagaBaga

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

    Всего записей: 463 | Зарегистр. 14-11-2005 | Отправлено: 17:31 19-05-2010
    wolf0425



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

    Цитата:
    Раз пошли на использование sed, не подскажете, как с его помощью
     
    1. удалить из файла пустые строки (т.е. строки без символов - не считая пробелов и табуляций, хотя, табуляции можно не рассматривать, если сильно усложняют код)  

    удалить совсем пустые sed -r "/^$/d"
    удалить не совсем пустые sed -r "/^[ \t]*$/d"
     

    Цитата:
    2. в каждой строке группы из повтояющихся (2 и более) пробелов заменять на 1 пробел
    sed -r "s/ {2,}/ /g"
    или "s/[ \t]{2,}/ /g" если табуляции тоже заодно все покилять
    или "s/[ \t]+/ /g"  если табуляции позаменять на пробел и там где одна.
    обвеска <in >out как обычно

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 18:42 19-05-2010 | Исправлено: wolf0425, 18:45 19-05-2010
    Free_Soft



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

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



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

    Всего записей: 41 | Зарегистр. 15-04-2008 | Отправлено: 01:13 20-05-2010
    BagaBaga

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    1. Есть файл с 10 000 записей. Как при помощи sed (или не sed) разбить его на 10 файлов по 1000 записей?
     
    2. Хотел в каждую строчку файла в начало каждой строки добавить "Пользователь". Нашел похожий пример (только там пробелы вставляют) по ссылке http://www.opennet.ru/base/dev/sed1line.txt.html (Вставить  5  пробелов  в  начале  каждой  строки) :
              sed 's/^/     /'
    Но sed выдает ошибку sed.exe: -e expression #1, char 1: unknown command: `''
     

    Всего записей: 463 | Зарегистр. 14-11-2005 | Отправлено: 01:24 20-05-2010
    wolf0425



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

    Цитата:
    1. Есть файл с 10 000 записей. Как при помощи sed (или не sed) разбить его на 10 файлов по 1000 записей?  
    например тупо так:

    Код:
    sed -n -e "1,1000 w file1.txt" -e "1001,2000 w file2.txt" -e "2001,3000 w file3.txt" -e "3001,4000 w file4.txt" -e "4001,5000 w file5.txt" -e "5001,6000 w file6.txt" -e "6001,7000 w file7.txt" -e "7001,8000 w file8.txt" -e "8001,9000 w file9.txt" -e "9001,$ w file10.txt" file_in.txt

     

    Цитата:
    (Вставить  5  пробелов  в  начале  каждой  строки) :
              sed 's/^/     /'  
    кавычки - двойные надо.  sed "s/^/     /" <in >out
     
     
     
    Добавлено:
    Fenixion
    Цитата:
    вопрос вот тут
    1. ну посмотреть в хэлпах что такое %0 - ты мог и сам.
    это строка, как собственно батник был вызван. именно в  таком виде пользоваться не рекомендую - для копирования много надежнее например "%~f0"
    2. \ желателен: при наличии каталога %ХХХХХ%\систем - разницы нет, при отсутствии - с чертой ругнется без черты скопирует в файл %ХХХХХ%\систем
    3. не в фоновом режиме, а с погашенным эховыводом команд. эхо проще погасить в первой команде, чем в каждую в писывать @
    4. может
    5. если прав хватит - почему нет? только если процесс это сервис - не поможет же. сервисы прибивают через sc, а не через taskkill
    7. если найдешь что надо поправить в регистри - то и убрать сможешь.
     
     
     

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 02:19 20-05-2010 | Исправлено: wolf0425, 15:52 20-05-2010
    Metakz



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

    Всего записей: 94 | Зарегистр. 10-01-2009 | Отправлено: 09:53 20-05-2010
    Joo1z



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Metakz
    SED тебе в помощь. Сцылка чуть выше.

    Код:
    sed -n "/regexp/,${p;n;n;n;n;n;n;n;}" filename

    Всего записей: 123 | Зарегистр. 17-02-2009 | Отправлено: 12:15 20-05-2010 | Исправлено: Joo1z, 12:18 20-05-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 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 8
    vu1tur (04-09-2010 17:46): http://forum.ru-board.com/topic.cgi?forum=62&topic=21297


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru