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

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

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

vu1tur (11-09-2007 15:22): продолжаем в теме Задачи на bat-файлах 4  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

vu1tur



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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:54 27-04-2007 | Исправлено: Elroir, 03:59 10-09-2007
    NIKZZZZ



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

    Цитата:
    Надо получить список файлов внутри нескольких папок.  
    отсортированный по времени записи например.


    Код:
    del temp.txt
    for /r "c:\1" %%i in (*.*) do (
      for /f "tokens=1-5* delims=.: " %%j in ("%%~ti") do echo %%l%%k%%j%%m%%n %%i>>temp.txt
    )
    for /r "c:\2" %%i in (*.*) do (
      for /f "tokens=1-5* delims=.: " %%j in ("%%~ti") do echo %%l%%k%%j%%m%%n %%i>>temp.txt
    )
    type temp.txt | sort >result.txt
    del temp.txt

    Если папок много, можно добавить for со списком.

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 22:33 25-08-2007
    slayer120



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

    Цитата:
    for /f "skip=4 tokens=1,4,* delims= " %%i in ('dir /a:-d /t:c "%file%" ^| find /v "байт"') do (  

    так не пойдет будет много мусора. Правильно для русской локали:
     | findstr /i /v "байт содержимое том всего" )
     
    NIKZZZ
       
        for /f "tokens=* delims=" %%i in ('dir <имя папки>  /A:-D /B /S /O:-d /T:c') do (  
      for /f "tokens=1-3* delims=.: " %%j in ("%%~ti") do echo %%l%%k%%j %%i>>temp.txt  
    )  
     type temp.txt | sort /r  > rez.txt  
     
    Просто думал что dir  позволит это сделать без дополнительной сортировки , но увы
     
    Спасибо всем откликнувшимся

    Всего записей: 303 | Зарегистр. 24-01-2007 | Отправлено: 08:34 26-08-2007 | Исправлено: slayer120, 08:37 26-08-2007
    AlessTO

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

    Всего записей: 253 | Зарегистр. 09-12-2006 | Отправлено: 09:58 26-08-2007 | Исправлено: AlessTO, 09:59 26-08-2007
    Maza Faka



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

    Код:
     
    @echo off
    taskkill /f /im explorer.exe
    ping -n 4 localhost>nul
    start explorer.exe
     

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 10:33 26-08-2007
    garniv



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maza Faka
    А какую роль играет строчка с пингом?

    Всего записей: 1102 | Зарегистр. 23-12-2004 | Отправлено: 19:07 26-08-2007
    alt76



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

    Цитата:
    А какую роль играет строчка с пингом?

    пауза

    Всего записей: 1260 | Зарегистр. 03-04-2003 | Отправлено: 19:16 26-08-2007
    SPV_Ed



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Нужно сгенерировать текстовый файл со строками в формате "случайный набор из 13ти цифр;1". Пытался с помощью %random%, но с ним количество цифр разное выходит... У кого какие мысли?

    Код:
    @echo off
     
    set fileout=%~n0.txt
    if exist %fileout% del /q %fileout%
    setlocal enableextensions enabledelayedexpansion
    set /p kolvo="kolichestvo: "
    for /l %%i in (1,1,%kolvo%) do (
        set rnd=!random!!random!!random!
        echo !rnd!
        echo !rnd!;1 >>%fileout%
        )
    endlocal
     

    Всего записей: 474 | Зарегистр. 20-06-2006 | Отправлено: 15:03 27-08-2007
    NIKZZZZ



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

    Цитата:
    случайный набор из 13ти цифр


    Код:
    set rnd=000000000%random%%random%%random%%random%
    set rnd=%rnd:~-13%

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 15:39 27-08-2007
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Интресно echo %random% выводится в Far'е, идет прирост значений +3 - +7, чем быстрее нажимешь Up Enter, тем меньше прирост. От чего вообще эта переменная высчитывается? От времени?

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 19:49 27-08-2007
    dshark16

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Help, plz!
    Необходимо узнать размер каталога со всеми подкаталогами и, если размер больше чего-го бросить send. Получилось вот так, но не совсем хорошо...
    setlocal ENABLEEXTENSIONS
    pushd %1
    for /f "tokens=3" %%b in ('compact /S /Q^|findstr объемом') do set z=%%b
    т.к. с %z не могу производить никакие мат. операции.
    Попробовал пример отсюда: http://www.commandline.co.uk/lib/treeview/index.php - GetDirStat, но что-то не заработало.  
    Если эту проблему уже обсуждали, ткните plz.

    Всего записей: 2 | Зарегистр. 11-04-2007 | Отправлено: 19:02 28-08-2007
    NIKZZZZ



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

    Цитата:
    т.к. с %z не могу производить никакие мат. операции.

    Кто это сказал?
    set /?
     
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 19:40 28-08-2007
    Lutvun



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Тут появилась идея, но как реализоват к идеи не прилогалось. Можно ли написать батник который быт опредилял тип харда и если это например 320 Гбайтны то разбывал ево на разделы 20Гб:100Гб:всё остальное, такжэ например с  80 - 20Гб: и всё остальное. Щяс оиграюсь с командами фдиска, но врятли сам пойму как сделать

    Всего записей: 286 | Зарегистр. 22-11-2005 | Отправлено: 22:45 28-08-2007
    NIKZZZZ



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Lutvun
    Это можно сделать с помощью DiskPart.
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 23:00 28-08-2007
    dshark16

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

    Цитата:
    [/q]
    [q]Кто это сказал?  
    set /?  
     

     
    Пример: есть каталог объемом 860 309 байт. Запускаем батник:
    setlocal ENABLEEXTENSIONS  
    pushd %1  
    for /f "tokens=3" %%b in ('compact /S /Q^|findstr объемом') do set z=%%b  
    echo %z%
    set /A s=z+0
    echo %s%
    И что мы видим s=860, т.е. берется первая цифра до пробела. Как этот пробел убрать, чтобы воспринималось целое число? Вот так не получается:
    SET s=%s: =%  
    А как? Вообщем вопрос остался!

    Всего записей: 2 | Зарегистр. 11-04-2007 | Отправлено: 10:18 29-08-2007
    NIKZZZZ



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

    Цитата:
    Как этот пробел убрать


    Код:
    chcp 1251
    setlocal ENABLEEXTENSIONS  
    pushd %1  
    for /f "tokens=3,4,5,6 delims=я " %%b in ('compact /S /Q^|findstr объемом') do set z=%%b%%c%%d%%e  
    echo %z%
    set /A s=z+0
    echo %s%


    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 10:35 29-08-2007
    Mitkasik



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здраствуйте, уважаемые!
     
    Задача:
    Есть два каталога.  
    Нужно чтобы второй по содержанию файлов стал равным первому.  
    При этом не трогать файлы с расширением *.tmp и не трогать подкаталоги.
     
    Т.е. если 1\файл = 2\файл - не трогать
                    1\файл <> 2\файл - переписать
                    2\файл нет аналога в 1\ -удалить

    Всего записей: 53 | Зарегистр. 06-12-2006 | Отправлено: 11:15 29-08-2007 | Исправлено: Mitkasik, 11:16 29-08-2007
    king_stiven

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

    Цитата:
    Т.е. если 1\файл = 2\файл - не трогать  
                    1\файл <> 2\файл - переписать  
                    2\файл нет аналога в 1\ -удалить

     
    Приведи примеры файлов

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 11:28 29-08-2007
    vu1tur



    Moderator-Saaber
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Mitkasik
    по-моему можно просто удалить второй каталог и переписать на его место первый
     
    PS: прочти п. 1.9. главы VIII Соглашения по использованию.

    ----------
    I am free of all prejudice. I hate everyone equally.

    Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:30 29-08-2007
    Mitkasik



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    king_stiven
     
    это сетевой диск, где я обновляю файлы:
    s:\1\program.exe
    s:\1\bibl_1.dll
    s:\1\bibl_2.dll
    s:\1\bibl_3.dll
    s:\1\readme.txt
    s:\1\func.exe
    s:\1\user1.tmp
    s:\1\user2.tmp
    s:\1\2\program.exe
    s:\1\3\readme.txt
     
     
    нужно чтобы появился такой локальный  каталог
    с:\1\program.exe
    с:\1\bibl_1.dll
    с:\1\bibl_2.dll
    с:\1\bibl_3.dll
    с:\1\readme.txt
    с:\1\func.exe
     
    создать каталог, если его нет  
     
     
    Добавлено:
    vu1tur
    это не годится т.к. 90% запусков файлы не меняются, а копирование занимает продолжительное время. Нужно переписать только новые и убрать лишние.

    Всего записей: 53 | Зарегистр. 06-12-2006 | Отправлено: 11:34 29-08-2007
    Maza Faka



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Mitkasik
    Лучше Robocopy для твоей задачи не найти!

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 11:45 29-08-2007
       

    Страницы: 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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 3
    vu1tur (11-09-2007 15:22): продолжаем в теме Задачи на bat-файлах 4


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru