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

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



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

    Цитата:
    Код ниже берет только один файл (2.txt) и выводит в result.txt имя файла 2.txt чего быть не должно.  


    Код:
    for /f "delims=" %%A in (1.txt) do findstr /i /b /c:"%%A" <2.txt  >>result.txt

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 10:06 25-05-2010
    Sustaw

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Приветствую. Озадачился такой проблемой: Каждый день создаются директории с файлами с названием текущей даты. Допустим мне не нужны директории с файлами с устаревшей датой, допустим 3 дневной давности. Их нужно удалить, и файлы в них тоже. Если бы названия директорий были постоянными, то проблем нет. Вопрос такой: как постоянно, через .bat удалять директории с файлами, если названия директорий каждый раз разные, оставляя директории, срок создания которых менее 3 дней? Примеру скрипта был бы очень рад.

    Всего записей: 6 | Зарегистр. 25-05-2010 | Отправлено: 15:44 25-05-2010
    mugil_cephalus

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Sustaw
    http://forum.ru-board.com/topic.cgi?forum=62&topic=19668&start=0&limit=1&m=4#1

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 15:57 25-05-2010
    wolf0425



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

    Цитата:
    Вопрос такой: как постоянно, через .bat удалять директории с файлами, если названия директорий каждый раз разные, оставляя директории, срок создания которых менее 3 дней? Примеру скрипта был бы очень рад.
    можно тупо - имена директориям давать в формате yyyy-mm-dd
    после чего отсортировать по имени и удалять начиная с четвертой...

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

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

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



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

    Цитата:
    получить строки из файла 2, которые отсутсвуют в файле 1


    Код:
     
    findstr /v /g:1.txt 2.txt
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 23:33 25-05-2010
    boy999



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ПОИСК И ЗАМЕНА файлов!   КАК можно сделать!?

    Всего записей: 2030 | Зарегистр. 19-05-2008 | Отправлено: 23:42 25-05-2010
    Joo1z



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

    Код:
    dir /?
    findstr /?
    copy /?
    xcopy /?
    move /?
    del /?

    Тебе в помощь.
     
    Если хочешь конкретики, то ставь и задачу конкретнее.

    Всего записей: 123 | Зарегистр. 17-02-2009 | Отправлено: 09:36 26-05-2010
    boy999



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Joo1z
    ОК, в папке с игрой: Lula 3D есть файл - Lula_clothes.dds, 17 шт.  
     
    Это модель Лулочки.  
     
    Мне надо её заменить на ещё более красивую модель, т.е.  заменить все Lula_clothes.dds модифицированным файлом: Lula_clothes.dds...  
     
     
    КАК ЭТО СДЕЛАТЬ!?

    Всего записей: 2030 | Зарегистр. 19-05-2008 | Отправлено: 09:48 26-05-2010
    Joo1z



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

    Код:
    for /f %a in ('dir /b /s C:\Lula3D') do copy C:\Lula3D\Newfile.dds %a /y

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



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

    Цитата:
    for /f %a in ('dir /b /s C:\Lula3D') do copy C:\Lula3D\Newfile.dds %a /y

     
    Это батник такой сделать? И чего оно даст? Заменит все модели нужной!?
     
    Во всех папках?
     

    Всего записей: 2030 | Зарегистр. 19-05-2008 | Отправлено: 10:55 26-05-2010
    BagaBaga

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как перенаправить снадартный вывод на stderr или stdlog
    т.е.  я хочу сделать echo ERROR так, чтобы сообщение пошло не на STDOUT, а на STDERR или STDLOG

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



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    boy999
    Это прямо в командной строке можно вводить.
    Если хочешь батник, то переменная должна быть %%a а не %a
     
    Если сомневаешься в результате, то вставь @echo перед copy, посмотришь какие файлы он хочет заменить.

    Всего записей: 123 | Зарегистр. 17-02-2009 | Отправлено: 12:17 26-05-2010
    boy999



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

    Цитата:
    Это прямо в командной строке можно вводить.

     
    Пишет: Файл не найден.
     

    Всего записей: 2030 | Зарегистр. 19-05-2008 | Отправлено: 13:43 26-05-2010
    Joo1z



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    boy999
    Значит пишешь

    Код:
    for /f "tokens=*" %a in ('dir /b /s "S:\Lula 3D"') do copy здесь пишешь полный путь до нового файла вместе с именем. Если в этом пути есть имена папок с пробелами, то заключай весь путь в кавычки. "%a" /y

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

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

    Цитата:
    Как перенаправить снадартный вывод на stderr или stdlog  

    отвечу сам себе
    echo ERROR 1>&3

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BagaBaga может заодно и расскажешь что такое stdlog и какие программы сами в него пишут?

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 18:25 26-05-2010
    mugil_cephalus

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

    Код:
    hh ntcmds.chm::/redirection.htm

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 18:37 26-05-2010
    boy999



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

    Цитата:
    for /f "tokens=*" %a in ('dir /b /s "S:\Lula 3D"') do copy здесь пишешь полный путь до нового файла вместе с именем. Если в этом пути есть имена папок с пробелами, то заключай весь путь в кавычки. "%a" /y

     
     
    В командную строку ввёл: for /f "tokens=*" %a in ('dir /b /s "S:\Lula 3D"') do copy C:\Lula_clothes.dds
     
    В ответ: Файл по прежнему не найден.

    Всего записей: 2030 | Зарегистр. 19-05-2008 | Отправлено: 19:00 26-05-2010
    mugil_cephalus

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

    Цитата:
    В командную строку ввёл: for /f "tokens=*" %a in ('dir /b /s "S:\Lula 3D"') do copy C:\Lula_clothes.dds  
     
    В ответ: Файл по прежнему не найден.


    Цитата:
    copy здесь пишешь полный путь до нового файла вместе с именем. Если в этом пути есть имена папок с пробелами, то заключай весь путь в кавычки. "%a" /y  


    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 19:17 26-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