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

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

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

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

   

Nagual



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

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

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

  • Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 12:28 19-03-2008 | Исправлено: Nagual, 01:02 24-09-2008
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Nagual
    А название топика поменять?
    Часть то уже пятая.
     
    Добавлено:
    И вообще - обычно модераторы открывают продолжение, а заодно и шапку прибивают.

    ----------
    "В интернете есть все, но не всегда"

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 13:02 19-03-2008
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir
    пока модеров дождешься...
    отредактируй как считаешь нужным, у тебя же есть доступ

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 14:06 19-03-2008
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Nagual
    Не могу - шапки же нет . Отредактировать первый пост (ну и название) может только автор.

    ----------
    "В интернете есть все, но не всегда"

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 14:33 19-03-2008
    Rush

    Уже за тридцать...
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Такой вопрос - можно ли получить занятые буквы дисков с выводом в файл БЕЗ использования FSO (вообще любых ActiveX)?

    Всего записей: 3550 | Зарегистр. 20-11-2003 | Отправлено: 15:04 19-03-2008
    pgofman2

    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Ну наконецто - новый раздел открыли

    Всего записей: 66 | Зарегистр. 07-09-2006 | Отправлено: 15:08 19-03-2008
    Elroir



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

    Код:
     
    @echo off
    setlocal enabledelayedexpansion
    echo list volume>"%temp%\ds.txt"
    for /f "skip=8 tokens=3" %%a in ('diskpart /s "%temp%\ds.txt"') do set "used=!used! %%a"
    del /q "%temp%\ds.txt" 2>nul
    echo The used letters are - %used:~1%
     


    ----------
    "В интернете есть все, но не всегда"

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 15:31 19-03-2008
    Rush

    Уже за тридцать...
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir
    Хоть убей, не создается файл с drive letter. Ну если, конечно, убрать
    Код:
    del /q "%temp%\ds.txt" 2>nul
    то пишется, но только с пустым list volume.

    Всего записей: 3550 | Зарегистр. 20-11-2003 | Отправлено: 16:09 19-03-2008
    01MDM



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

    Код:
     
    @echo off
    for /f "tokens=1 delims=\" %%i in ('fsutil fsinfo drives ^| more') do call:write "%%i"
    goto:eof
     
    :write
    set d=%~1
    echo %d:~-2,2% >>1.txt
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 16:11 19-03-2008
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Rush
    Вообще-то мой код и не должен создавать файл с используемыми буквами. Он их просто выводит в консоль. Чтобы выводить в файл, скажем used_letters.txt, замени последнюю строчку кода :

    Код:
    echo %used:~1%>used_letters.txt



    ----------
    "В интернете есть все, но не всегда"

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 16:15 19-03-2008
    Rush

    Уже за тридцать...
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    Твой вариант пишет отлично.  
    А нельзя ли, чтобы еще и тип выводил?
     
    Простите уж, сразу не сообразил спросить...
     
    Добавлено:
    Elroir

    Цитата:
    Вообще-то мой код и не должен создавать файл с используемыми буквами. Он их просто выводит в консоль.

    Так ведь я плаваю в этом деле. Чайник-с...
    Кстати, твой код выдает только физические диски. А у 01MDM и виртуальные. Полезно и то и другое...

    Всего записей: 3550 | Зарегистр. 20-11-2003 | Отправлено: 16:17 19-03-2008
    01MDM



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

    Цитата:
    А нельзя ли, чтобы еще и тип выводил?

    Ну как-нибудь так

    Код:
     
    @echo off
     
    for /f "tokens=1 delims=\" %%i in ('fsutil fsinfo drives ^| more') do (
        call:write "%%i"
    )
    goto:eof
     
    :write
    set d=%~1
    for /f "tokens=*" %%i in ('fsutil fsinfo drivetype %d:~-2,2%') do (
        call:convert_1251 "%%i"
        echo %dd% >>1.txt
        chcp 866 >nul
    )
    goto:eof
     
    :convert_1251
    chcp 1251 >nul
    set dd=%~1
     

     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 16:37 19-03-2008
    Rush

    Уже за тридцать...
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    Все хорошо, но последний диск перестал цеплять.

    Всего записей: 3550 | Зарегистр. 20-11-2003 | Отправлено: 16:47 19-03-2008
    01MDM



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

    Код:
     
    @echo off
     
    :: setlocal - опционально
    setlocal
     
    for /f "tokens=1 delims=\" %%i in ('fsutil fsinfo drives ^| more') do (
        call:write "%%i"
    )
    goto:eof
     
    :write
    set d=%~1
    for /f "tokens=*" %%i in ('fsutil fsinfo drivetype %d:~-2,2%') do (
        call:convert_1251 "%%i"
        chcp 866 >nul
    )
    goto:eof
     
    :convert_1251
    chcp 1251 >nul
    set dd=%~1
    echo %dd% >>1.txt
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 16:58 19-03-2008 | Исправлено: 01MDM, 17:05 19-03-2008
    Rush

    Уже за тридцать...
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    Отлично.   Все, больше не надоедаю.

    Всего записей: 3550 | Зарегистр. 20-11-2003 | Отправлено: 17:07 19-03-2008
    SelenaNight



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

    Цитата:
    Просто remotehelp, без literal  

    упс...

    Код:
    ftp> REMOTEHELP
    214-The following commands are recognized (* =>'s unimplemented):
     CWD     XCWD    CDUP    XCUP    SMNT*   QUIT    PORT    PASV
     EPRT    EPSV    ALLO*   RNFR    RNTO    DELE    MDTM    RMD
     XRMD    MKD     XMKD    PWD     XPWD    SIZE    SYST    HELP
     NOOP    FEAT    OPTS    AUTH    CCC*    CONF*   ENC*    MIC*
     PBSZ    PROT    TYPE    STRU    MODE    RETR    STOR    STOU
     APPE    REST    ABOR    USER    PASS    ACCT*   REIN*   LIST
     NLST    STAT    SITE
    214 Direct comments to root@srv84.chat.ru

    Что из этого использовать надо?
    STOR есть, но не работало (долго думало и отключалось)...

    Всего записей: 333 | Зарегистр. 27-02-2006 | Отправлено: 22:19 19-03-2008
    HW2yS

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Nagual
    не пашет
    как я понял ему не хватает пути к VM-у
    делает "C:\Program Files\Microsoft Virtual PC\Virtual PC.exe" -registervm "2596_1-Glasgow_DC.vmc"
    а надо "C:\Program Files\Microsoft Virtual PC\Virtual PC.exe" -registervm "C:\Program Files\Microsoft Learning\2596\Drives\2596_1-Glasgow_DC.vmc"
    приложил принтскрин на всякий случай если ещё не надоел

    Всего записей: 87 | Зарегистр. 21-11-2006 | Отправлено: 03:17 20-03-2008
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    HW2yS
    В конце строчки for-a, поставь вместо "%%a" "%%~fa"

    ----------
    "В интернете есть все, но не всегда"

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 03:25 20-03-2008
    HW2yS

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Nagual  
    Elroir
    спасибо огромное именно это и было нужно !!  
    а то я с этими for do не дружу

    Всего записей: 87 | Зарегистр. 21-11-2006 | Отправлено: 03:46 20-03-2008
    igor_andreev

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

    Цитата:
    Что из этого использовать надо?  

    Честно говоря, думаю у тебя два выхода. Или использовать другой бесплатный сервер, поддерживающий нормальную закачку по ftp, или использовать другой клиент.  
    Я попробовал в Far-e создать соединение с ftp.chat.ru, пока не поставишь галочки Passive mode и Use firewall - не соединишься.
     
    Есть такая утилита с дружелюбным консольным интерфейсом, ftps.exe (MoveIt Freely) Основной синтаксис у нее один-в-один как у стандартной ftp.exe, но она еще и SSL поддерживает и "also includes support for firewall-friendly Passive FTP"(как это по русски?).  Запускается абсолютно так-же, как и штатная:  
    ftps -s:script.txt
     
    script.txt
    Код:

    open ftp.chat.ru
    user
    pass
    passive
    put test.txt
    quit

    и ложит файл test.txt на chat.ru без особых разговоров, firewall-friendly как-никак. А стандартная не хочет friendly
    Скачать http://demos.stdnet.com/termemu/moveitfreelyportable.zip 276 Кб
     

    Всего записей: 1655 | Зарегистр. 08-12-2004 | Отправлено: 05:34 20-03-2008 | Исправлено: igor_andreev, 19:46 20-03-2008
       

    Страницы: 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-файлах 5
    vu1tur (04-11-2008 23:07): Задачи на bat-файлах 6


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

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.Board
    © Ru.Board 2000-2020

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru

    Рейтинг.ru