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

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



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    угу. на каждый батник будет свой cmd. может можно через wmi получить ид своего процесса

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 18:51 23-08-2010
    lorents



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

    ----------
    Image Catalyst - оптимизация изображений без потери качества

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 19:08 23-08-2010
    bomzzz



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

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 19:12 23-08-2010
    lorents



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

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 19:17 23-08-2010
    bomzzz



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

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 19:19 23-08-2010 | Исправлено: bomzzz, 19:21 23-08-2010
    mime13



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Прошу помочь: есть тхт файл (например 001.txt) примерно на 200 строк, нужно создать файлы где именем каждого будет одна строчка из исходного файла,
     т.е. берем первую строчку, создаем файл, в название помещаем всю строку целиком,  
    берем вторую строчку, создаем файл, помещаем строку в название... и т.д.
    тут похоже через переменные нужно, а я с ними дела особо не имел.
    или подскажите куда копать.

    ----------
    «Паранойя — это ни разу не болезнь, а критерий профпригодности.»

    Всего записей: 3606 | Зарегистр. 09-10-2004 | Отправлено: 19:23 23-08-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mime13
     
    FOR /F "EOL=" %%I IN (MY.TXT) DO ECHO OFF>%%I
    вот так примерно вместо "EOL=" будут параметры имеющие конкретную привязку к конкретному ткст файлу
     
    Добавлено:
    из интересу проверил работает  
    ECHO OFF
    COLOR 9F
    CLS
    FOR /F "EOL=" %%I IN (MY.TXT) DO ECHO OFF>%%I  
    pause
     
    с таким файлом,
     
    1
    2
    3
     
     в основном зависит будут ли в строчках пробелы

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 19:26 23-08-2010
    mime13



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    bomzzz
    не работает.  
    скрипт отрабатывает, но не понимает пробелы - если в строке было 5 слов то он создает 5 файлов и вырубается.  
    и еще вместо  русских букв - иероглифы

    ----------
    «Паранойя — это ни разу не болезнь, а критерий профпригодности.»

    Всего записей: 3606 | Зарегистр. 09-10-2004 | Отправлено: 19:44 23-08-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ECHO OFF
    COLOR 9F
    CLS
    CHCP 1251
    FOR /F "DELIMS=! EOL=" %%I IN (MY.TXT) DO ECHO OFF>"%%I"
     
    вот так будет работать независимо от того есть ли пробелы в именах или нет
    CHCP 1251 - это для русских букаф

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 19:45 23-08-2010 | Исправлено: bomzzz, 19:48 23-08-2010
    mime13



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


    ----------
    «Паранойя — это ни разу не болезнь, а критерий профпригодности.»

    Всего записей: 3606 | Зарегистр. 09-10-2004 | Отправлено: 19:47 23-08-2010 | Исправлено: mime13, 19:51 23-08-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    я проверил - работает
    восклицательного знака не может быть в именах так что знак универсальный тута
     
    чета ступил - может быть восклицательный знак в именах.
    замени если надо на слеш например
    FOR /F "DELIMS=/ EOL=" %%I IN (MY.TXT) DO ECHO OFF>"%%I"
    не на любой - который служебным в баниках не является

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 19:48 23-08-2010 | Исправлено: bomzzz, 20:56 23-08-2010
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sed -n "G; s/\n/&&/; /^\([ -~]*\n\).*\n\1/d; s/\n//; h; P"
    Удалить дубликаты строк в файле.  Но почему то кириллицу игнорирует. Кто знает,как поправить?

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 20:32 23-08-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    king_stiven
    кодировку в батнике переключи может поможет
    chcp 1251

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 20:35 23-08-2010
    Rush

    Уже за тридцать...
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    bomzzz

    Цитата:
    чета ступил - может быть восклицательный знак в именах.  
    замени если надо на слеш например  
    FOR /F "DELIMS=/ EOL=" %%I IN (MY.TXT) DO ECHO OFF>"%%I"  
    не на любой - который служебным в баниках не является

    Просто
    Код:
    for /f "tokens=*" %%i in (MY.TXT) do echo off>"%%i"

    и ничего не надо.

    Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 20:44 23-08-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Rush
    помоги тут с процентами разобраться. этот батник удаляет все дубликаты файлов по размеру
     
    так понял тут сравнивать нельзя так

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 20:48 23-08-2010 | Исправлено: bomzzz, 20:56 23-08-2010
    Rush

    Уже за тридцать...
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    bomzzz

    Цитата:
    помоги тут с процентами разобраться

    Какие-такие проценты?

    Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 20:51 23-08-2010
    lorents



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

    ----------
    Image Catalyst - оптимизация изображений без потери качества

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 20:53 23-08-2010
    bomzzz



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

    ECHO OFF
    COLOR 9F
    CLS
    SETLOCAL ENABLEDELAYEDEXPANSION
    FOR /F "delims=* EOL=" %%I IN ('DIR /A:-D /O:S /B') DO (
    IF %%~zI==!PREVIOUSFILESIZE! DEL "%%I"
    SET PREVIOUSFILESIZE=%%~zI
    )

     
    у меня работкаит.

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 20:55 23-08-2010 | Исправлено: bomzzz, 21:33 23-08-2010
    mime13



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    bomzzz
    там восклицательных нету, так что все отработало отлично.

    ----------
    «Паранойя — это ни разу не болезнь, а критерий профпригодности.»

    Всего записей: 3606 | Зарегистр. 09-10-2004 | Отправлено: 21:00 23-08-2010
    bomzzz



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

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 21:02 23-08-2010 | Исправлено: bomzzz, 21:18 23-08-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