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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Из-за сбоя в работе µtorrent и моих кривых ручек, во многих вложенных каталогах с аудиокнигами (файлами .mp3) расширения этих файлов стали mp3.!ut и даже .mp3.mp3.!ut Если вручную ...
    но µtorrent упорно дописывает в конце .!ut.
    это не сбой, это мюторрент считает что файлы ещё не полностью докачаны (контрольная сумма не совпадает или просто не проверялась).
    Если они таки уже скачаны - то в  µtorrent это лечится запусканием Force Re-Check на нужном торренте.
     
    частично неправильная скачка - не препятствие для большинтсва mp3 проигрывателей, а если проверка µtorrent не проходит - то расхождение по содержимому действительно есть.
    Но даже если расхождения нет - то продолжать раздавать ты эти файлы планируешь? если планируешь - пусь µtorrent их почекает, он сам переименует правильно как всё проверит и успокоится.

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 17:14 04-04-2010 | Исправлено: wolf0425, 17:51 04-04-2010
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Dimau1981
    Цитата:
    Но похоже у роутера только веб-интерфейс.
    да и бог с ним.
    так все же, если на маршрутизатор залогиниться браузером, а потом тупо открыть http://192.168.0.1/restart.cgi  - он перезагрузится или нет? чего вообще пишет?
     
    для батника:
    Код:
    wget --http-user=adminuser --http-passwd=adminpass -O test.htm http://192.168.1.1/restart.cgi

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 20:53 04-04-2010 | Исправлено: wolf0425, 20:56 04-04-2010
    Dimau1981

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Да, перегружается.
    wget --http-user=adminuser --http-passwd=adminpass -O test.htm http://192.168.1.1/restart.cgi
    вот, вот оно!!!
    Спасибо огромное, wolf0425, очень благодарен!
     
    Добавлено:
    Только один вопрос - зачем "-O test.htm", без него работает, и можно ли избежать создания файла restart.cqi? В принципе не проблема, он из того же батника удалятся будет, но интересно.

    Всего записей: 166 | Зарегистр. 29-12-2008 | Отправлено: 21:31 04-04-2010
    wolf0425



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

    Цитата:
    зачем "-O test.htm"
    чтоб создавался конкретно test.htm а не restart.cqi или что там ещё сервер про имя решит сказать.
    А вообще вроде можно и сразу придушить:
    Код:
    1>nul wget --http-user=adminuser --http-passwd=adminpass -O - http://192.168.1.1/restart.cgi

     

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 23:15 04-04-2010 | Исправлено: wolf0425, 23:17 04-04-2010
    Dimau1981

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

    Всего записей: 166 | Зарегистр. 29-12-2008 | Отправлено: 00:49 05-04-2010
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Насчёт дескрипторов, вот это:
    1>nul 2>&1
    и это:
    1>nul 2>nul
    одинаково?

    Всего записей: 2232 | Зарегистр. 17-07-2006 | Отправлено: 10:43 05-04-2010
    mugil_cephalus

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

    Цитата:
    есть скрипт (проверка наличия папки)  
     
    Код:cd\  
    dir /b/ad "G:\scripts\TEST"  
    if exist "G:\scripts\TEST\s s\nul" echo.hi  
    pause  
     
    вот листинг  
    G:\scripts\TEST>cd\  
     
    G:\>dir /b/ad "G:\scripts\TEST"  
    s s  
     
    G:\>if exist "G:\scripts\TEST\s s\nul" echo.hi  
     
    G:\>pause  
    Для продолжения нажмите любую клавишу . . .  
     
    что я делаю не так?
     

     
     
     
    Добавлено:
    K1ska

    Цитата:
    я тока начинаю в это вникать думаю для начала будет достаточно... заочница...  

    Уильям Станек - Командная строка Microsoft Windows

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 12:05 05-04-2010 | Исправлено: mugil_cephalus, 12:07 05-04-2010
    gryu



    дикий гусь
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Коллеги помогите.  
    Запутался я.  
    Как получить переменную "T" равную настоящая дата и время минус 5 минут. ....
    Нужно для выбора файлов для обработки.  
    Т.е. операция должна проводится только над файлами с датой создания не старше 5 минут.  
    Остальные файлы должны игнорироваться.  
    (если можно, то с пояснениями в тексте, чтоб потом сам делал, а не других дёргал)

    Всего записей: 13035 | Зарегистр. 15-03-2006 | Отправлено: 12:38 05-04-2010
    wolf0425



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

    Цитата:
    Насчёт дескрипторов, вот это:
    1>nul 2>&1
    и это:
    1>nul 2>nul
    одинаково?  
    если в нуль отправляешь - практической разницы не будет.
    А если не nul а какой-то файл - то очень даже будет.
    1>nul 2>&1  = перенаправить stdout в нуль, stderr в stdout  
     
    Добавлено:
    mugil_cephalus
    Цитата:
    что я делаю не так?  
    да ты то вроде всё правильно делаешь - это  
    if exist "G:\scripts\TEST\s s\nul"  чего-то глючит: не понимает когда одновременно \nul и кавычки. Порознь - понимает.
     
    так что если надо проверять наличие каталога c пробелами в пути, то наверно придется так:
    dir /b "G:\scripts\TEST\s s\" 1>nul 2>&1 && echo.hi  

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 12:50 05-04-2010 | Исправлено: wolf0425, 13:14 05-04-2010
    mugil_cephalus

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

    Цитата:
    да ты то вроде всё правильно делаешь - это  
    if exist "G:\scripts\TEST\s s\nul"  чего-то глючит: не понимает когда одновременно \nul и кавычки. Порознь - понимает.  

    спасибо большое
     
    Добавлено:
    K1ska

    Цитата:
    mugil_cephalus а через функцию IF возможна это сделать  
    Как нить так  
    if [not] exist fail.txt else fail.txt не найден

    это по задаче № 1 - ?
    да, можно, если известны диск и путь до файла

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

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    gryu
    В шапке, там vbs скрипты есть со временем, их поправить наверно можно, только если не здесь то на их форуме спроси.

    Всего записей: 2232 | Зарегистр. 17-07-2006 | Отправлено: 14:17 05-04-2010
    gryu



    дикий гусь
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    king_stiven
    Цитата:
    В шапке, там vbs скрипты есть со временем,
    гм. vbs это хорошо, но мешать всё в кучу напряжно.  
    Хотелось бы командной строкой.  
    Неужели нет такой команды типа find /путь/ -mtime +180 -mindepth 1 -delete в *nix?  
    Означает "найти и удалить все файлы старше 180 дней"

    Всего записей: 13035 | Зарегистр. 15-03-2006 | Отправлено: 15:29 05-04-2010
    mugil_cephalus

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

    Цитата:
    задача такая:  
    нужно скрипт которому скармливаешь файл (без расширения) он определяет тип файла(по содержимому) и возвращает тип файла или расширение

    знаю gui-решение:
    Восстановление данных из .chk файлов  см. CHKParser32
     
    Автоматическая сортировка
    Вот, в принципе, и всё, целый один chk-файл мы опознали и вернули на место. Но ведь это только один файл, а их может быть порядка тысячи и более… Что же, просматривать все файлы вручную? Правильно! Конечно же нет… Благодарим Михаила Маврицина, который написал, с моей точки зрения, наиболее толковую из бесплатных программ для автоматической сортировки .chk. Итак, приветствуем нашего помощника – CHKParser32.  

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



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

    Цитата:
    Означает "найти и удалить все файлы старше 180 дней"  
    нету. в стандартном комплекте вообще с обработкой дат туго.
    forfile.exe умеет понять на тему 180 дней, но у дельта даты именно в днях - минуты она не поймет.  

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 15:36 05-04-2010
    king_stiven

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

    Всего записей: 2232 | Зарегистр. 17-07-2006 | Отправлено: 15:58 05-04-2010
    Dimau1981

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Доброго времени суток.
    Подскажите плиз - нужно запустить батник из другого:
    echo @echo off > 1.bat
    echo start /wait wget --http-user=admin --http-password=************ http://192.168.0.1/restart.cgi >> 1.bat
    echo del restart.cgi ^>^>nul >> 1.bat
    echo echo Перезагрузка займет две минуты...>>1.bat
    echo nircmd wait 122000 >>1.bat
    echo nircmd cmdwait 1000 killprocess cmd.exe >>1.bat
    echo del 1.bat ^>^>nul >> 1.bat  
    start 1.bat
     
    после этого нужно закрыть окно командной строки и удалить 1.bat. Получается только одно - или закрыть, или удалить. Понятно почему так просиходит, но не понятно как совместить - и закрыть, и удалить...

    Всего записей: 166 | Зарегистр. 29-12-2008 | Отправлено: 16:08 05-04-2010
    K1ska



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

    Цитата:
    это по задаче № 1 - ?
    да

    Всего записей: 5 | Зарегистр. 02-04-2010 | Отправлено: 16:24 05-04-2010
    gryu



    дикий гусь
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    king_stiven
    см ПМ.

    Всего записей: 13035 | Зарегистр. 15-03-2006 | Отправлено: 17:22 05-04-2010
    wolf0425



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

    Код:
    @echo off
    1> %temp%\reboot.bat (
        echo @echo off
        echo start /b cmd /c 2^>nul 1^>nul wget -t 1 -O - --http-user=admin --http-password=************ http://192.168.0.1/restart.cgi
        echo echo Перезагрузка займет две минуты...
        echo ping -n 121 localhost ^>nul
        echo del "%%~f0" ^& exit
    )
    start "rebooting" %temp%\reboot.bat
     

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 17:48 05-04-2010 | Исправлено: wolf0425, 18:19 05-04-2010
    mugil_cephalus

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

    Код:
    rem @echo off
    cd\
    chcp 1251>nul
    set "file=G:\scripts\TEST\klichko.bokser"
    if exist "%file%" (echo.The file %file% exists.) else echo.The file %file% not found.
    set "file="
    chcp 866>nul
    pause

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