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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    Есть драйвера, позволяющие монтировать образ диска как диск. Например, в TotalCmd есть плагин VirtualDisk. Смонтировав таким образом файл нужного размера, и отфррматировав его:
    Format /fs:ntfs /force можно получить реальный диск, который мало чем отличается от физического.
    Мне , например, нравится Virtual Disk Driver
    Последовательность такая:

    Код:
    vdk install
    vdk start
    vdk open 0 MountFile.img /rw /p:0 /l:z:
    Format /fs:ntfs /force z:
     

    Имеем диск z:
    А утилита нужно для получения MountFile.img - файла-пустышки, он может быть создан чем угодно, хоть коммандой Echo ...
    Mountvol этого сделать не сможет, а вот работать с таким диском я думаю ей под силу, не пробовал.
     
     
     
     
     
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 20:49 06-05-2007 | Исправлено: NIKZZZZ, 20:55 06-05-2007
    Tjomich

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

    Цитата:
    Подключение по локальной сети - Ethernet адаптер:
     
            DNS-суффикс этого подключения . . :
            IP-адрес  . . . . . . . . . . . . : 169.254.195.178
            Маска подсети . . . . . . . . . . : 255.255.0.0
            Основной шлюз . . . . . . . . . . :
     
    Uktelecom - PPP адаптер:
     
            DNS-суффикс этого подключения . . :
            IP-адрес  . . . . . . . . . . . . : 91.124.246.1
            Маска подсети . . . . . . . . . . : 255.255.255.255
            Основной шлюз . . . . . . . . . . : 91.124.246.1
     

    Ipconfig когда соединение разорвано…

    Цитата:
    Подключение по локальной сети - Ethernet адаптер:
     
            DNS-суффикс этого подключения . . :
            IP-адрес  . . . . . . . . . . . . : 169.254.195.178
            Маска подсети . . . . . . . . . . : 255.255.0.0
            Основной шлюз . . . . . . . . . . :
     

    Всего записей: 19 | Зарегистр. 06-05-2007 | Отправлено: 20:50 06-05-2007
    Elroir



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

    Код:
     
    @echo off
    setlocal
    :try
    for /f "tokens=1* delims=:. " %%a in ('ipconfig ^| find "IP"') do set "old_address=%%b"
    rasdial ADSL_соединение /disconnect
    ping -n 4 -w 1000 127.0.0.1>nul
    :reconnect
    rasdial ADSL_соединение имя пароль
    for /f "tokens=1* delims=:. " %%a in ('ipconfig ^| find "IP"') do set "new_address=%%b"
    if "%new_address:~0,3%"=="169" goto reconnect
    if "%new_address%"=="%old_address%" goto try
     

    Измени строчки с  rasdial.. на свои.

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 21:15 06-05-2007
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ
     
    За разъяснение спасибо, жаль что vdk не монтирует isoшки.

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 21:23 06-05-2007
    NIKZZZZ



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

    Цитата:
    жаль что vdk не монтирует isoшки.

    Исошки монтирует FileDisk, впрочем как и другие образы.
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 21:35 06-05-2007
    Tjomich

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir, спасибо! Всё работает!!!!

    Всего записей: 19 | Зарегистр. 06-05-2007 | Отправлено: 21:52 06-05-2007
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    мужики помогите в фором
    нужно укапокать некую кучу файлов makecab'ом
    пишу так
    for /f "tokens=*" %%a in ("imaadp32.acm l3codeca.acm msadp32.acm") do (makecab %%a)
    pause
    вижу (makecab imaadp32.acm l3codeca.acm msadp32.acm )
    а надо
    makecab imaadp32.acm
    makecab l3codeca.acm
    makecab msadp32.acm

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 01:35 07-05-2007
    Elroir



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

    Код:
     
    for %%a in (imaadp32.acm l3codeca.acm msadp32.acm) do makecab %%a
     


    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 01:38 07-05-2007
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ
    можешь привести примеры работы с монтированием и демонтированием исошек?
     
     
    Добавлено:
    Elroir
    ай пасиб

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 01:39 07-05-2007
    NIKZZZZ



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Nagual
    С FileDisk последовательность такая:
     

    Код:
    Инсталляция:
    copy filedisk.sys %systemroot%\system32\drivers
    copy filedisk.exe %systemroot%\system32
    regedit filedisk.reg
    Перезагрузка!!!

     

    Код:
    монтирование:
    Создать файл filedisk.img размером 8 Мб и смонтировать.
    filedisk /mount  0 c:\temp\filedisk.img 8M z:
    Смонтировать файл filedisk.img
    filedisk /mount  0 c:\temp\filedisk.img z:
    Смонтировать исошку
    filedisk /mount  0 c:\temp\cdimage.iso /cd z:
    Размонтировать:
    filedisk /umount z:
     

     
    0 - номер устройства (0-3), максимальное к-во (4) определено в filedisk.reg
    Если лень писать  ручками - есть GUI утилита.

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 03:31 07-05-2007 | Исправлено: NIKZZZZ, 03:32 07-05-2007
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ
    а чем же плоха или не устраивает Daemon Tools?
    _______________________________________________
    Монтирование образа на первый виртуальный диск
    daemon -mount 0, образ
    Размонтирование образа с первого виртуального диска
    daemon -unmount 0
    _______________________________________________
    Монтирование образа на второй виртуальный диск
    daemon -mount 1, образ
    Размонтирование образа с второго виртуального диска
    daemon -unmount 1
    _______________________________________________
    и т.д.
    ***********************************************

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 03:51 07-05-2007
    NIKZZZZ



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

    Цитата:
    Доброго времени суток. Такая проблема, нужно написать батник, который перезванивал бы adsl модем каждые 3 секунды пока не сменится, динамически выделяемый провайдером, IP...  

    Для того, чтобы адрес сменился, должно пройти некоторое время чтобы адрес был отдан еще кому-либо. Дозваниваясь каждые 3 секунды ты наоборот столбишь адрес под себя. Рекомендую увеличить время до 30-60 секунд. Если есть возможность создать еще одно соединение, отличное по параметрам, для смены IP удобно просто переключаться между ними.
     
     
     
    Добавлено:
    Nagual

    Цитата:
    а чем же плоха или не устраивает Daemon Tools?  

    А я разве ее хаял? Наоборот для Iso она лучше т.к. созданный ею виртуальный диск больше похож на реальный. А вообще в большинстве случаев работы с Iso лично мне хватает UltraIso или 7z.
     
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 03:52 07-05-2007
    Nikiit



    Newbie
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Привет всем! Как создать папки в виде 01 02 03
    вот это создает for /L %%A in (01#, 01#, 35#) do md %%A
    0 1 2 3

    Всего записей: 14 | Зарегистр. 18-11-2005 | Отправлено: 10:30 07-05-2007
    KapralBel



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

    Код:
    @Echo Off
    For /l %%a in (1 1 35) Do Call :L %%a
    GoTo :EOF
     
    :L
    Set Fld=0%1
    Set Fld=%fld:~-2%
    MD %Fld%
    GoTo :EOF
     

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 10:54 07-05-2007
    Nikiit



    Newbie
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    KapralBel
    Пишет  
    Подпапка или файл 1 уже существует.
    Подпапка или файл 2 уже существует.
    Подпапка или файл 3 уже существует.
    Подпапка или файл 4 уже существует.
    Подпапка или файл 5 уже существует.
    Подпапка или файл 6 уже существует.
    Подпапка или файл 7 уже существует.
    ...
    и создает только папки с 0 до 9.

    Всего записей: 14 | Зарегистр. 18-11-2005 | Отправлено: 11:04 07-05-2007
    wolf0425



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

    Цитата:
    есть файл, например, Desktop.ini с атрибутами ahs
    необходимо его скопировать в ту же папку по именем, скажем %name%_  

    с учетом того, что файл= текстовый, да и формат cr-lf в копии тебя врядли напрягает  

    Код:
    type Desktop.ini >%name%_

    по крайней мере на winXP аттрибуты ahs препятствием не стали...

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 11:23 07-05-2007
    krukoff



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

    Код:
    @echo off  
    chcp 1251 > nul  
    Set LogPath=C:\Log.txt  
    Set DelPath=C:\  
    Set Ext=*.tmp  
    CD "%DelPath%"  
    For /R %%i In (%Ext%) Do (  
    Del "%%i"  
    If Not Exist "%%i" (Echo %Time:~0,-3%^>^> File "%%i" was deleted>> "%LogPath%") Else (Echo %Time:~0,-3%^>^> File "%%i" was NOT deleted>> "%LogPath%")  
    )

     
    Взял этот код из "шапки". Но изменил расширение на *.tmp
    Однако, кроме *.tmp батник удаляет и *.tmpl.  Почему?

    ----------
    Знает сломанный корабль: жизнь - река и надо плыть,
    Буйный ветер рассекать, тихий берег позабыть.
    Обработка видео на компьютере

    Всего записей: 1673 | Зарегистр. 27-10-2004 | Отправлено: 11:25 07-05-2007
    wolf0425



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

    Цитата:
    Как создать папки в виде 01 02 03
    вот это создает for /L %%A in (01#, 01#, 35#) do md %%A  


    Код:
    @Echo Off
    setlocal enabledelayedexpansion
    For /l %%a in (1 1 35) do set /a folder=1000+%%a && md !folder:~-2!
     

    проверялось на winXP
     
    Добавлено:
    krukoff

    Цитата:
    Однако, кроме *.tmp батник удаляет и *.tmpl.  Почему?

    по короткому (8.3) имени файла, которое у .tmpl как раз .tmp
    впиши проверку:
    if "*%%~xi"=="%Ext%" Del "%%i"

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 11:28 07-05-2007 | Исправлено: wolf0425, 14:56 07-05-2007
    KapralBel



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

    Код:
    @Echo Off
    SetLocal EnableExtensions
    For /l %%a in (1 1 35) Do Call :L %%a
    GoTo :EOF
     
    :L
    Set Fld=0%1
    Set Fld=%fld:~-2%
    MD %Fld%
    GoTo :EOF
     

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 11:36 07-05-2007
    Maza Faka



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

    Цитата:
    Однако, кроме *.tmp батник удаляет и *.tmpl.  Почему?

    Вот немного исправленный код:

    Код:
     
    @echo off
    chcp 1251 > nul
    Set LogPath=C:\Log.txt
    Set DelPath=C:\
    Set Ext=*.tmp
    CD "%DelPath%"
    For /R %%i In (%Ext%) Do (
    If "%Ext%"=="*.tmp" Del "%%i" /f /q
    If Not Exist "%%i" (Echo %Time:~0,-3%^>^> File "%%i" was deleted>> "%LogPath%") Else (Echo %Time:~0,-3%^>^> File "%%i" was NOT deleted>> "%LogPath%")
    )
     

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 11:45 07-05-2007 | Исправлено: Maza Faka, 11:50 07-05-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