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

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



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    подскажите ибо не силен в батанике...
    как удалить в папке все возможные файлы с разрешением .cmd (название может быть любым) кроме одного, напр. My.cmd?
    Заранее благодарен

    Всего записей: 192 | Зарегистр. 25-01-2010 | Отправлено: 14:58 23-08-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    скопировать его в другую папку а потом назад
     
    Добавлено:
    или занять процессом чтоб сделать невозможным удаление
     
    Добавлено:
    или можно так сделать - переименовать все файлы CMD в папке сначала в KMD, предварительно создав в папке файл с именем MY.KMD, так как имя будет занято он один не переименуется, а потом удалить все файлы KMD в т ч и файл MY.KMD
     
    Добавлено:
    ECHO OFF>MY.KMD
    REN *.CMD *.KMD
    DEL *.KMD
     
    Добавлено:
    работкает
     
     
    Добавлено:
    ну или так можно сделать, что корректнее потому что ошибка не вылазит
    REN MY.CMD MY.KKK
    DEL *.CMD
    REN MY.KKK MY.CMD
     
    Добавлено:
    и массовая операция только одна - быстро действеннее

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



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

    Цитата:
    как удалить в папке все возможные файлы с разрешением .cmd (название может быть любым) кроме одного, напр. My.cmd?  
    по очереди, в цикле

    Код:
    for %%a in ( *.cmd ) do if  /i "%%~a" neq "my.cmd" del "%%~a"

     
     
    Добавлено:
    bomzzz тебя уже сколько человек просило прятать свои простыни под [more] ?

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 16:52 23-08-2010 | Исправлено: wolf0425, 17:52 23-08-2010
    ivn1978



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    Спасибо.
    еще вопрос: запускаю батником My.cmd батник My1.cmd командой start /wait. Если второй батник отрабатывается штатно и выходит по команде exit, то все хорошо. Но если его закрыть принудительно (закрыть консоль руками), то в первом батнике появляется
    Код:
    ^CЗавершить выполнение пакетного файла [Y(Да)/N(Нет)]?
    Как от этого избавиться?
     
    Добавлено:

    Цитата:
    по очереди, в цикле

    Код:
    for %%a in ( *.cmd ) do if  /i "%%~a" neq my.cmd del "%%~a"

    Кстати, почему-то my.cmd тоже удаляется...

    Всего записей: 192 | Зарегистр. 25-01-2010 | Отправлено: 17:02 23-08-2010
    lorents



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

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

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



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    lorents
    создай список файлов с размерами командой дир, потом выкинь командой фор строки имеющую одинаковую колонку размера.
     
    Добавлено:
    wolf0425
    им только остается посоветовать поискать себе форум для WAP
     
    Добавлено:
    FIND /v "%STRING%" <DIR.TXT > DIR1.TXT
    вот как то так из файла пропадают при перезаписывании все одинаковые строчки. нашел у себя батник в котором это случайно пригодилось

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ivn1978
    Цитата:
    Кстати, почему-то my.cmd тоже удаляется...
    ну пропустил я одни кавычки в if, извиняй. поправил.
     
    bomzzz
    Цитата:
    им только остается посоветовать поискать себе форум для WAP  
    или попросить модератора тебя забанить на недельку, раз до тебя так не доходит...
     
     

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 17:55 23-08-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Участников 1434276 - а вот столько не просило. хватит ныть не нравится форум - инет большой
     
    Добавлено:
    не можешь себе инет купить нормальный возьми книжку в билиотеке и сиди читай

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    lorents
    Цитата:
    Подскажите, пожалуйста, как можно удалить дублирующие файлы, которые в папке. Под дубликатами я подразумеваю файлы которые весят одинаково.
    Скажите пожалуйста в какую сторону смотреть?
    в сторону цикла for /f "delims=" %%a in ('dir /b /o:s') do  
     
    делаешь сравнение размера текущего файла с предыдущим, если совпадает - удаляешь
     
     
    Добавлено:

    Цитата:
    не нравится форум - инет большой  
    форум то мне нравится - придурок один не нравится

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 17:59 23-08-2010 | Исправлено: wolf0425, 18:02 23-08-2010
    bomzzz



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

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



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

    Всего записей: 192 | Зарегистр. 25-01-2010 | Отправлено: 18:04 23-08-2010 | Исправлено: ivn1978, 18:12 23-08-2010
    lorents



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

    Код:
    for /f "delims=" %%i in ('dir /b /s /a-d PunyPng\*.png') do (
     
    )

    Как а теперь удалить дубликаты?

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

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



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

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



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

    Цитата:
    делаешь сравнение размера текущего файла с предыдущим, если совпадает - удаляешь  

    понял, через %%~zi сравнивать размер,  пойду посмотрю как сделать это, выход опять через цикл.

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

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



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ECHO OFF
    COLOR 9F
    CLS
    FOR /F "EOL=C" %%I IN (URL.TXT) DO SET STRING=%%I
    FIND /v "%STRING%" <URL.TXT > URL1.TXT
    SET STRING=%STRING:&=^^^&%
    start USDownloader.exe %STRING%
    DEL /Q URL.TXT
    REN URL1.TXT URL.TXT
     
     
    вот такой батник у меня он из списка удалет нижнюю строчку и отправляет ее на скачивание, а вместе с ней все дубликаты. тебе осталось придумать как сюда вделать разбор по столюцу размеров
     
     
    Добавлено:
    %%~zi точно если делать так и столбцы не нужны а только пути

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



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

    Всего записей: 192 | Зарегистр. 25-01-2010 | Отправлено: 18:27 23-08-2010
    bomzzz



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

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



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

    Цитата:
    создать строчку в реестре со статусом только для админа  

    в какой раздел?

    Всего записей: 192 | Зарегистр. 25-01-2010 | Отправлено: 18:31 23-08-2010 | Исправлено: ivn1978, 18:32 23-08-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    попробуй покопать в строну команды tasklist, или посматреть WMI -вот тут то точно можно любые сведения о процессе получить
     
    Добавлено:
    в любой. ну лучше всего сюда HKEY_LOCAL_MACHINE\SOFTWARE
     
    Добавлено:

    Цитата:
     
    TASKLIST [/S <система> [/U <имя пользователя> [/P [<пароль>]]]]
             [/M [<модуль>] | /SVC | /V] [/FI <фильтр>] [/FO <формат>] [/NH]
     
    Описание:
        Отображает список приложений и связанные с ними задачи/процессы, которые
        исполняются в текущий момент на локальном или удаленном компьютере.
     
     
       /FI    <фильтр>         Отображение списка задач, которые отвечают
                               указанному в фильтре критерию.
     
    Фильтры:
        Имя фильтра     Допустимые операторы           Допустимые значения
        -----------     --------------------           -------------------
     
        USERNAME        eq, ne                         Имя пользователя в формате
                                                       [<домен>\<пользователь>]
        SERVICES        eq, ne                         Имя службы
     
        TASKLIST /FI "USERNAME ne NT AUTHORITY\SYSTEM" /FI "STATUS eq running"
     

     
    имя процесса для всех батников - CMD
    вот так отображается с именем пользователя список процессов  
    tasklist /V

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



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    bomzzz
    но теоретически могут быть запущены и другие экземпляры cmd... так что лучit наверно с реестром

    Всего записей: 192 | Зарегистр. 25-01-2010 | Отправлено: 18:49 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