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

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

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

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

   

vu1tur



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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 16:59 14-11-2006 | Исправлено: Elroir, 04:30 26-04-2007
    Smitis



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

    Цитата:
    Да нее, не то, щас Smitis придет - раскритикует

    Пришёл... Критикую...
    Но способ использования двоеточия мне понравился.
    Осталось эхо подавить...
     
    Добавлено:
    01MDM

    Цитата:
    Как вызвать выполнение командного файла через cmd если в %comspec% прописан 4nt?

    А если так:
    "cmd.exe" /c my.cmd
     
     
    Добавлено:

    Цитата:
    В 4nt формат вывода даты отличается от cmd?

    Формат переменной %date% тот же

    ----------
    Разум когда-нибудь победит

    Всего записей: 2469 | Зарегистр. 09-02-2003 | Отправлено: 00:11 11-04-2007 | Исправлено: Smitis, 00:12 11-04-2007
    Nagual



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

    Цитата:
    Smitis
    test.cmd

    Код:

    Set s=CreateObject("WScript.Shell") : s.Popup "It's vbscript",1,"oops", 64 '& cls & wscript //e:vbscript %0 & echo It's cmd & pause

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

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 00:49 11-04-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Читал, читал ветку и не понял
    зачем объединять в одном скрипте VBS и Bat???

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 02:19 11-04-2007
    euheny



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

    Цитата:
    и не понял  
    зачем объединять в одном скрипте VBS и Bat???

    Помойму тут тоже ничего интересного нет , в отличае от запуска батников из контекстного меню.
    Однако вопрос я задал ... но толи никто не знает , толи никто не врубился.

    Всего записей: 3927 | Зарегистр. 22-11-2006 | Отправлено: 05:12 11-04-2007
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    euheny
    KapralBel
    да в принципе область применения мала, об этом было сразу сказано, но думаю все же есть, если разобраться и покопаться, то можно многое совместить
    допустим та же задача по созданию времени, приведенная Игорьком Андеевым и тд, да много что можно придумать, если разобраться, просто осознание этого немного в диковинку, ибо всегда считалось, что скрипты намного мощнее сценариев и из скриптов спокойно можно было выполнять различные команды, а тут на тебе, и сценарии в долгу не остались
    имхо лучше когда есть возможность, чем когда ее нету
    хотя пока с трудом тоже могу придумать этому применение, но думаю со временем может и буду использовать эту особенность почему нет, собсна?
    хотя меня лично больше и давно интересует выполнение скрипта одной строкой (командой)

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



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

    Цитата:
    в отличае от запуска батников из контекстного меню

    Из контекстного меню папки? Тогда так:

    Код:
     
    @Echo off
    Reg add HKCR\Directory\shell\cmdhere /t REG_SZ /v "" /d CMD /f
    Reg add HKCR\Directory\shell\cmdhere\command /t REG_SZ /v "" /d "C:\Windows\System32\cmd.exe /k cd "%1"" /f
     

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



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

    Цитата:
    а помнится мне кто-то раньше говорил, что это сделать невозможно и вот на тебе, так что шаман был

    Я имел ввиду НОРМАЛЬНОЕ объединение, т.е. гибридный файл содержит полнофункциональную VBS-часть и полнофункциональную CMD-часть, а не одну строчку. Плюс, желательно, отключение эха в CMD-части.
    Вот пример получше:

    Код:
     
    :On Error Resume Next
    :sub bat
    echo off
    echo This is CMD
    cscript -e:vbscript "%~f0"
    :end sub
    :WScript.Echo "This is VBS"
     

    Но, во-первых, эхо отключается не сразу (фигня, конечно).
    Во-вторых, CMD-часть получается очень ограниченная - все команды должны выглядеть так, чтобы на них не ругался VBS.
     
     
    euheny

    Цитата:
    Интересно , а как участники этой темы запускают cmd ?  
    Неужели через "выполнить"


    Цитата:
    Помойму тут тоже ничего интересного нет , в отличае от запуска батников из контекстного меню.  
    Однако вопрос я задал ... но толи никто не знает , толи никто не врубился.

    Извини, конечно, но по-моему, не врубился ты ;) Эсли тебе не интересно - пропусти не читая.
    Я, например, "запускаю cmd" из-под ФАРа (и даже не cmd, а сами скрипты). Если пошёл такой разговор - мне совершенно не интересен запуск батников из контекстного меню. Я даже "врубаться" не стал, зачем и как. ;)

    ----------
    Разум когда-нибудь победит

    Всего записей: 2469 | Зарегистр. 09-02-2003 | Отправлено: 09:11 11-04-2007 | Исправлено: Smitis, 20:16 11-04-2007
    NIKZZZZ



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

    Цитата:
    хотя пока с трудом тоже могу придумать этому применение

    Применение очень простое - у каждого скрипта есть своя заточка. Например, аналог строки батника
    for /r %%i in (*.*) echo %%i
    на wsh пишется довольно сложно, а простая проблема замены в тексте на батниках напрямую не решается. При этом , если человек разбирается в батниках, зачем ему переходить на что-то еще? Между тем, чтобы написать 2-3 строки на wsh , его не надо глубоко изучать. И к тому-же в батниках сплошь и рядом применяются внешние утилиты, почему не воспользоваться встроенными в систему средствами?
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 10:38 11-04-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    А что если из WSH вызвать батничек или утилиту - возникают проблемы?
     
    А вообще можно переходить (для более менее сложных задач) на PowerShell
    там многие вещи решаются гораздо проще
    например таже любимая всеми проблема - получить дату отстоящую от сегодняшей на 1,2,3 и т.д. ней
    На один день есть даже в шапке для всеобщего счастия
    а на более ....
    Эта же задача на PowerShell

    Код:
    PS C:\> $DateNow=Date
    PS C:\> $DateNow
    Ср, 11 апреля 2007 г. 10:15:29
    PS C:\> $Date22=$DateNow.AddDays(-22)
    PS C:\> $Date22
    Вт, 20 марта 2007 г. 10:15:29

    Да и со стандартными средствами Винды работать легче
    Кстати вышеуказанный пример с заменой строк

    Код:
    PS C:\> $String='qwerty_qwerty'
    PS C:\> $string
    qwerty_qwerty
    PS C:\> $string.Replace('er','@@@')
    qw@@@ty_qw@@@ty

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 11:20 11-04-2007
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ
    не очень и сложно, здесь можно спокойно делать хитрый выпад
    createobject("wscript.shell").run"cmd /c for /r %i in (*.*) do echo %i>>1.txt"

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 11:42 11-04-2007 | Исправлено: Nagual, 11:45 11-04-2007
    Elroir



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

    Цитата:
    Интересно , а как участники этой темы запускают cmd ?  
    Неужели через "выполнить"

    Что подразумевается под cmd? cmd.exe? Сами батники?
    И почему "Неужели"?

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 12:02 11-04-2007
    NIKZZZZ



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

    Цитата:
    А вообще можно переходить (для более менее сложных задач) на PowerShell

    Да в общем нет смысла спорить, что лучше , что хуже. Есть встроенные средства (WSH,BAT) и внешние. BAT удобен для простых задач, WSH наоборот для серьезных. Не тот, не другой не имееют полноценный компиляторов. Лично мне нравится Autoit, в нем есть практически все включая графику + полноценный компилятор от производителя. Но его недостаток - требуется внешний файл, либо программа должна быть откомпилирована.  
     
     
    Добавлено:
    Nagual

    Цитата:
    не очень и сложно

    А если без хитрых выпадов?
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 13:15 11-04-2007
    sansun

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

    Цитата:
    Да просто, берешь и скидываешь  Правильно заданный вопрос - уже половина ответа. Какие символы в пароле, пример приведи. И чем скачивать-закачивать собрался, прог то много.  

    вот пример настройки подкючения к фтп через фар:
    [FarFTP]
    URL=ftp://prz:prz135@10.106.10.250/work
    Password=hex:a10dfc
    Description=work
    AskLogin=0
    AsciiMode=0
    PassiveMode=0
    UseFirewall=0
    CharTable=
     
    для автоматизации нужно подключиться через батник

    Всего записей: 8 | Зарегистр. 10-04-2007 | Отправлено: 13:24 11-04-2007
    NIKZZZZ



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sansun
    Так на предыдущей странице твоя задача практически решена!

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 13:38 11-04-2007
    Nagual



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

    Цитата:
    А если без хитрых выпадов?

    это уже другая ветка

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 13:59 11-04-2007
    igor_andreev

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

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

    Так и будешь формулировать вопрос в час по чайной ложке? Скачать надо или закачать? И чем ты хочешь это проделать в батнике? Есть wget.exe, curl.exe, wput.exe, есть стандартная ftp.exe, есть ftps.exe, sftpc.exe, scriptftp.exe,  и еще много всяких exe, штук двадцать с ходу могу назвать и все можно в батниках использовать.
    Ну допустим, предположу, что ты хочешь что-то стандартным консольным ftp-клиентом проделать. Начни тогда отсюда http://support.microsoft.com/kb/96269 , что непонятно - спрашивай.

    Всего записей: 1669 | Зарегистр. 08-12-2004 | Отправлено: 14:12 11-04-2007 | Исправлено: igor_andreev, 14:20 11-04-2007
    sansun

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

    Цитата:
    Так и будешь формулировать вопрос в час по чайной ложке?  Скачать надо или закачать? И чем ты хочешь это проделать в батнике? Есть wget.exe, curl.exe, wput.exe, есть стандартная ftp.exe, есть ftps.exe, sftpc.exe, scriptftp.exe,  и еще много всяких exe, штук двадцать с ходу могу назвать и все можно в батниках использовать.

    использую стандартную  ftp.exe, непонятно только где и в каком виде вставит пароль. Надо будет и скачивать и закачивать, но с этим вроде пока понятно
     
    NIKZZZZ
    что-то не найду???

    Всего записей: 8 | Зарегистр. 10-04-2007 | Отправлено: 14:51 11-04-2007 | Исправлено: sansun, 14:54 11-04-2007
    igor_andreev

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

    Цитата:
    использую стандартную  ftp.exe, непонятно только где и в каком виде вставит пароль.

    По ссылке щелкни в моем предыдущем ответе. Обычный текстовой файл script.txt, в котором в столбик пишешь все, что хочешь от ftp.exe

    Цитата:
     
    open ftp.host.com
    имя_пользователя
    пароль
    cd /удаленная_папка
    lcd D:\локальная_папка
    binary
    put file.zip
    disconnect
    bye
     

    и запускай ftp.exe -s:script.txt
     
     
     

    Всего записей: 1669 | Зарегистр. 08-12-2004 | Отправлено: 15:03 11-04-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    sansun
    В чем проблема, то
    использую стандартный ftp - подсунуть пароль
    или
    перевести пароль из зашифрованного вида в настоящий?

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 15:06 11-04-2007
    sansun

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    igor_andreev
    KapralBel
     
    open 10.106.10.250
    user prz prz135
    a1odfc
    cd work
    append d:\pass.txt
    bye
     
    1) после пароля выдает "недопустимая команда"
    2) пароль прямо так и вводить?

    Всего записей: 8 | Зарегистр. 10-04-2007 | Отправлено: 15:19 11-04-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 100

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


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru