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

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

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

vu1tur (29-07-2011 12:47): Задачи на bat-файлах 11
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

vu1tur



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

 
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!! Чтобы не копировались концевые пробелы из форума, жмите на ссылку "Редактировать" в посте, и уже из редактора копируйте батник без пробелов.
 
Также для удаления концевых пробелов пользуйтесь скриптом от Nagual, или VBS-Скрипт-Модулем от ViSiToR.
 
Для перекодирования кирилицы 866<—>1251 пользуйтесь онлайн сервисом Перекодировщик кириллицы

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:53 09-01-2011 | Исправлено: mazafakermazafaka, 11:22 04-06-2011
    sanban231986

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте, люди!
    подскажите мне, пожалуйста, решение такой проблемы:
    Есть ftp в вышестоящей организации, мне дали логин пароль к нему, если заходить из far или total comander то можно увидеть две папки:
     
      from_client -- (сюда я должен класть свои файлы из папки С:\KL\OUT)
      to_client -- (отсюда я должен забирать файлы и перекидывать в С:\KL\IN)
     
    как можно автоматизировать такое действие с помощью BAT ? только...поподробней пожалуйста...
     
    и еще я слышал, что если через батник работать с ftp то можно недокачать и испортить файлы...
     

    Всего записей: 2 | Зарегистр. 18-03-2011 | Отправлено: 21:22 18-03-2011
    res2001



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

    Цитата:
    как можно автоматизировать такое действие с помощью BAT

    Можно с помощью имеющегося в виндах по умолчанию консольного FTP клиента - ftp.exe.

    Цитата:
    только...поподробней пожалуйста...  

    Поищи в версии для печати, тут уже обсуждалось неоднократно использование ftp.

    Цитата:
    и еще я слышал, что если через батник работать с ftp то можно недокачать и испортить файлы...  

    Сами батники ничего делать по ФТП не умеют, это делает клиент - ftp.exe, все притензии к нему. К тому же при передаче по сети, чем бы ты не пользовался, всегда есть вероятность недокачать, из-за обрыва связи например. При плохой связи можно и испортить, для того, что бы этого избежать обычно передаваемые файлы архивируют с информацией для восстановления.
    Ну и после скачивания никто тебе не мешает проверить файлы по контрольным суммам, чтоб удостоверится в правильности скачивания.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 12:54 19-03-2011 | Исправлено: res2001, 12:57 19-03-2011
    alex_party



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

     
    в каждом юзере примерно такое содержание:
     

    требуется в каждом юзере удалить то, что отмечено красным. Подскажите или сделайте батник такой... пожалуйста Или возможно такое уже было, подскажите где посмтреть информацию об этом.

    ----------
    Time to choose, it's time to choose...

    Всего записей: 1553 | Зарегистр. 24-08-2008 | Отправлено: 13:13 19-03-2011 | Исправлено: alex_party, 13:26 19-03-2011
    res2001



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

    Код:
    @echo off
    for /d %%a in (*.*) do (
    echo del /f/q "%%~a\*.*"
    if exist "%%~a\Cookies" echo rmdir /s/q "%%~a\Cookies"
    ...
    )

    Все что надо удалять писать лень - сам уже закончишь по аналогии, протестируешь, если выводит все правильно, то поудаляешь везде echo.
    Положишь батник в родительский каталог.
    Перед rmdir поставил проверку на всякий случай, уж больно деструктивная команда, черт знает как она сработает если каталога не будет, а экспериментировать как-то не хочется.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 15:21 19-03-2011 | Исправлено: res2001, 15:23 19-03-2011
    01MDM



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

    Код:
     
    @echo off
    :: если сохранишь батник в кодировке 866 (OEM), удали следующую строку
    1>nul chcp 1251
     
    pushd "d:\saves1\documents and settings"
     
    for /f "tokens=*" %%i in (' dir /b /ad ') do (
         
        rem Здесь только папки, которые надо удалить, названия с пробелами в кавычки
        for %%j in (cookies nethood .... "главное меню" шаблоны) do rd /s /q "%%i\%%~j"
         
        rem Здесь только файлы
        for %%j in (default.pls "some file with spaces" ntuser.dat ...) do del /a /f /q "%%i\%%~j"
     
    )
     
    popd
     



    ----------
    Вопросы в личке останутся без ответа

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 15:30 19-03-2011
    alex_party



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    res2001
    01MDM
    Спасибо! Попробую!

    ----------
    Time to choose, it's time to choose...

    Всего записей: 1553 | Зарегистр. 24-08-2008 | Отправлено: 20:59 19-03-2011
    superman md



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

    Код:
    ping -n 11 localhost > nul
    diskpart -s "E:\disc.vhd\attachvhd.s"

     
    attachvhd.s

    Код:
    select vdisk file=E:\disc.vhd\asus.vhd
    attach vdisk

     
    тут есть команды diskpart http://technet.microsoft.com/ru-ru/library/cc766465%28WS.10%29.aspx
    только не знаю куда приписать read-only чтоб заработало...

    ----------
    Нахожусь в очень сложном финансовом положении.
    Буду очень благодарен, если у вас найдется для меня занятие, которое поможет мне хоть немного заработать на дому!

    Всего записей: 1205 | Зарегистр. 27-06-2010 | Отправлено: 23:10 19-03-2011 | Исправлено: superman md, 11:33 20-03-2011
    01MDM



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

    Код:
     
    @echo off
     
    1>nul ping -n 11 localhost
     
    (
     
        echo select vdisk file=E:\disc.vhd\asus.vhd
        echo set readonly
        echo attach vdisk
     
    ) | diskpart
     



    ----------
    Вопросы в личке останутся без ответа

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 07:08 20-03-2011
    praidik



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем привет.
    Дайте пожалуйста ссылку на задачи по ассемблеру... если таковая есть. Заранее спасибо!

    Всего записей: 39 | Зарегистр. 15-11-2010 | Отправлено: 08:18 20-03-2011
    vtlseeker



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Возможно ли из командной строки запустить проигрывание стандартной мелодии Win?
     
    praidik
    Если имеется в виду этот форум, то здесь.

    Всего записей: 386 | Зарегистр. 03-03-2009 | Отправлено: 10:40 20-03-2011
    superman md



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

    Цитата:
    Наверное так:

    Не получается, совсем не подключает диск.  
    Может у кого то получится, выкладываю файлы, для экспериментов...   Ссылка
    По умолчанию нужно распаковать в корень диска D:\ чтоб заработало.

    ----------
    Нахожусь в очень сложном финансовом положении.
    Буду очень благодарен, если у вас найдется для меня занятие, которое поможет мне хоть немного заработать на дому!

    Всего записей: 1205 | Зарегистр. 27-06-2010 | Отправлено: 11:28 20-03-2011
    01MDM



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

    Цитата:
    Не получается, совсем не подключает диск.

    Сложно что-либо посоветовать из под ХП.
    Как отображается смонтированный файл? Как еще один диск, раздел диска? Подозреваю, что надо как-то так:

    Код:
     
    @echo off
     
    1>nul ping -n 11 localhost
     
    (
     
        echo select vdisk file=E:\disc.vhd\asus.vhd  
        echo attach vdisk
        echo select disk 3
        echo select partition 0
        echo attributes volume set readonly
        echo exit
     
    ) | diskpart  
     

     
    Красным выделены условные значения.

    ----------
    Вопросы в личке останутся без ответа

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 13:10 20-03-2011 | Исправлено: 01MDM, 13:15 20-03-2011
    king_stiven

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

    Код:
    sndRec32.exe /play /close /embedding 3.wav

     

    Код:
    echo.

     

    Код:
    rundll32 user32.dll,MessageBeep

    Всего записей: 2232 | Зарегистр. 17-07-2006 | Отправлено: 13:17 20-03-2011
    superman md



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

    Цитата:
    Сложно что-либо посоветовать из под ХП.
    Как отображается смонтированный файл? Как еще один диск, раздел диска? Подозреваю, что надо как-то так:  

     
    Нужно добавить команду readonly в файл attachvhd.s
     

    Код:
    select vdisk file=D:\disc.vhd\asus.vhd
    attach vdisk

     
    Виртуальный диск VHD отображается как обычный диск подключенный к компьютеру.
    В плане, для каждого пользователя сети нужно будет создать свой диск и нужно чтоб пользователи могли только считывать информацию, ну а администратор типа, уже полный доступ. Для пользователей кидается ярлык в автозагрузку и после включения пк у него сидит ещё один диск подключенный к компу, с которого он берёт нужную ему информацию.
     
    Через консоль управления дисками есть возможность подключения только для чтения.
     
       
     
    А вот как заставить делать это diskpart не пойму.
    Архив с диском тут Ссылка


    ----------
    Нахожусь в очень сложном финансовом положении.
    Буду очень благодарен, если у вас найдется для меня занятие, которое поможет мне хоть немного заработать на дому!

    Всего записей: 1205 | Зарегистр. 27-06-2010 | Отправлено: 13:39 20-03-2011
    praidik



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vtlseeker
    Благодарю!
    Это именно то, что нужно.

    Всего записей: 39 | Зарегистр. 15-11-2010 | Отправлено: 14:31 20-03-2011
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    superman md
    Добрался до 7-ки. Вот рабочий attach.cmd:

    Код:
     
    @echo off
     
    pushd "%~dp0"
     
    (
     
    echo select vdisk file="%~dp0asus.vhd"
    echo  attach vdisk
     
    ) | diskpart
     
    :: Здесь 3-х секундная пауза, на всякий случай, если не нужна, то можно нижний блок объединиить с верхним.
    2>nul waitfor faik /t 3
     
    (
     
    echo select disk 2
    echo attributes disk set readonly
    echo attributes disk
     
    ) | diskpart
     
    popd
     

    Батник лежит рядом c asus.vhd. Красным помечен номер диска, у меня "2"  
     
    А вот detach.cmd

    Код:
     
    @echo off
     
    pushd "%~dp0"
     
    (
     
    echo select disk 2
    echo attributes disk clear readonly
    echo select vdisk file="%~dp0asus.vhd"
    echo detach vdisk
     
    ) | diskpart
     
    popd
     

     
    ЗЫ. без файлов сценария diskpart. Все прописано в батниках =)

    ----------
    Вопросы в личке останутся без ответа

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 14:54 20-03-2011 | Исправлено: 01MDM, 15:00 20-03-2011
    superman md



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

    Цитата:
    ЗЫ. без файлов сценария diskpart. Все прописано в батниках =)

     
    Согласен, всё прописано в батниках, но проблема осталась.
    Можно спокойно добавлять и удалять файлы в этот диск.
     
    Требуется запретить изменение пользователями содержимого.
     

     
    А имеем полный доступ...  

    ----------
    Нахожусь в очень сложном финансовом положении.
    Буду очень благодарен, если у вас найдется для меня занятие, которое поможет мне хоть немного заработать на дому!

    Всего записей: 1205 | Зарегистр. 27-06-2010 | Отправлено: 15:31 20-03-2011
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    superman md
    Исправил. И не надо явно указывать номер тома.  
    attach.cmd:

    Код:
     
    @echo off
    setlocal
     
    pushd "%~dp0"
     
    for /f "tokens=2" %%i in (' echo list volume ^| diskpart ') do set /a volume=%%i+1
     
    (
     
        echo select vdisk file="%~dp0asus.vhd"
        echo attach vdisk
        echo select volume %volume%
        echo attributes volume set readonly
        echo exit
     
    ) | diskpart
     
    popd
     

    detach.cmd:

    Код:
     
    @echo off
    setlocal
     
    pushd "%~dp0"
     
    for /f "tokens=2" %%i in (' echo list volume ^| diskpart ') do set "volume=%%i"
     
    (
     
        echo select volume %volume%
        echo attributes volume clear readonly
        echo select vdisk file="%~dp0asus.vhd"
        echo detach vdisk
        echo exit
     
    ) | diskpart
     
    popd
     

     
    Просто сначала подумал, что можно выставить аттрибуты на диск, оказывается не прокатывает.

    ----------
    Вопросы в личке останутся без ответа

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 16:05 20-03-2011 | Исправлено: 01MDM, 16:16 20-03-2011
    superman md



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всё равно имеем полный доступ...

    ----------
    Нахожусь в очень сложном финансовом положении.
    Буду очень благодарен, если у вас найдется для меня занятие, которое поможет мне хоть немного заработать на дому!

    Всего записей: 1205 | Зарегистр. 27-06-2010 | Отправлено: 16:43 20-03-2011
    01MDM



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

    Цитата:
    Всё равно имеем полный доступ...

    Поставь задержку:

    Код:
     
    @echo off
    setlocal
     
    pushd "%~dp0"
     
    for /f "tokens=2" %%i in (' echo list volume ^| diskpart ') do set /a volume=%%i+1
     
    (
     
        echo select vdisk file="%~dp0asus.vhd"
        echo attach vdisk
     
    ) | diskpart
     
    2>nul waitfor faik /t 3
     
    (
        echo select volume %volume%
        echo attributes volume set readonly
        echo exit
     
    ) | diskpart
     
    popd  
     

     


    ----------
    Вопросы в личке останутся без ответа

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 17:08 20-03-2011
       

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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 10
    vu1tur (29-07-2011 12:47): Задачи на bat-файлах 11


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru