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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    sansun
    user prz prz135 - это ввод пользователя и пароля

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

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

    Цитата:
     
    user prz prz135  
    a1odfc

    Ты что, свой собственный логин и пароль не знаешь? Судя по адресу ftp://prz:prz135@10.106.10.250/ имя пользователя prz пароль prz135. А зачем ты с реестра еще hex вставил? Password=hex:a10dfc

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

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    после
    user prz prz135  
    выдает
    331 Password required for prz
     
    а затем на:
    append d:\pass.txt
     
    550 Cannot APPE. No permission
     

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

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sansun
    А ты присмотрись к моему ответу на предыдущей странице. Где ты там видел имя пользователя и пароль на одной строке?
     
    open 10.106.10.250  
    prz
    prz135
    cd work  
    append d:\pass.txt
    bye

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

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

    Цитата:
    open 10.106.10.250  
    prz  
     

    выдает "Недопустимая команда"

    Цитата:
     
    prz135  
     

    выдает "Недопустимая команда"

    Цитата:
     
    cd work  
    append d:\pass.txt  
    bye


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



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    igor_andreev
    В команде User можно указывать пароль и юзера на одной строке
     
    sansun
    Мне создалось впечатление что эта комбинация (юзер+пароль) не действительна

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

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

    Цитата:
    В команде User можно указывать пароль и юзера на одной строке  

    по моим данным тоже самое
     
    каталог work открыт только для чтения, в другом каталоге нормально записывается и считывается
     
    только не понятно а для чего это: Password=hex:a10dfc  

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

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sansun
    А так?
     
    open 10.106.10.250  
    user prz  
    prz135  
    cd work
    ...
     

    Цитата:
    каталог work открыт только для чтения

    А зачем ты тогда команду append пытаешься применить?

    Цитата:
    только не понятно а для чего это: Password=hex:a10dfc  

    Для Far
    KapralBel

    Цитата:
    указывать пароль и юзера на одной строке  

    Один раз споткнулся на этом - больше ни-ни

    Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 16:02 11-04-2007 | Исправлено: igor_andreev, 16:07 11-04-2007
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    sansun
    Это зашифрованный ФАРом пароль

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

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    также как со строкой
    user prz prz135  
     
    в принципе все работает, igor_andreev, KapralBel спасибо
     

    Цитата:
    Один раз споткнулся на этом - больше ни-ни  

    почему?
     

    Цитата:
    Это зашифрованный ФАРом пароль

    а я мучаюсь
     
    Добавлено:
    теперь другая проблема: с фтп надо качать файлы только за сегодняшнее число???

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

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

    Цитата:
    с фтп надо качать файлы только за сегодняшнее число???

    cd work
    dir *.* list.txt
    FIND в list.txt сегодняшнее число(будет скорей всего типа 11 Apr) и FOR в помощь, названия файлов выдергивай

    Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 17:56 11-04-2007 | Исправлено: igor_andreev, 18:00 11-04-2007
    Tipulatoid



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

    Цитата:
    теперь другая проблема: с фтп надо качать файлы только за сегодняшнее число???

     
    Вот чуток адаптированный код, который я в свое время писал для своих нужд. Проверено на ftp.narod.ru - у меня работает. Хотя сильно сомневаюсь, что у вас с первого раза заработает - все очень индивидуально и зависит от настроек системной даты и от еще разных вещей. Главное - понять суть. Я не утверждаю, что код этот умен, думаю, многие гораздо лучше напишут. Если не заработает - пиши - помогу, только как можно больше инфы нужно будет. Да, и еще, данный батник сохраняет пароль в незашифрованном виде в файле ftp.ini там его любой может подглядеть.
     

    Код:
    @echo off
    setlocal enabledelayedexpansion
    for /f "delims=. tokens=1-3" %%a in ('echo %date%') do (
       set day=%%a
       set month=%%b
       set year=%%c)
     
    if /i %month%==01 set nmonth=Jan
    if /i %month%==02 set nmonth=Feb
    if /i %month%==03 set nmonth=Mar
    if /i %month%==04 set nmonth=Apr
    if /i %month%==05 set nmonth=May
    if /i %month%==06 set nmonth=Jun
    if /i %month%==07 set nmonth=Jul
    if /i %month%==08 set nmonth=Aug
    if /i %month%==09 set nmonth=Sep
    if /i %month%==10 set nmonth=Oct
    if /i %month%==11 set nmonth=Nov
    if /i %month%==12 set nmonth=Dec
     
    if exist ftp.ini goto download
     
    ::Ввод установочных данных
    echo Введите адрес ftp-сервера. Например: ftp.narod.ru
    set /p ftp_adress=
    echo Введите ваш логин на ftp-сервере Например: delta-greit
    set /p ftp_login=
    echo Введите пароль для вашего логина.
    set /p ftp_password=
     
    :: Запись введеных данных в ftp.ini
    echo Создаю ftp.ini . . .
    echo [Ftp adress]> ftp.ini
    echo 0+%ftp_adress%>> ftp.ini
    echo [Ftp login]>> ftp.ini
    echo 0#%ftp_login%>> ftp.ini
    echo [Ftp password]>> ftp.ini
    echo 0~%ftp_password%>> ftp.ini
     
    ownload
    ::Чтение значений переменных из ftp.ini
    for /f "eol=[ tokens=2 delims=~" %%a in (ftp.ini) do set ftp_password=%%a
    for /f "eol=[ tokens=2 delims=#" %%a in (ftp.ini) do set ftp_login=%%a
    for /f "eol=[ tokens=2 delims=+" %%a in (ftp.ini) do set ftp_adress=%%a
     
    ::Создание сценария входа и действий на ftp-сервере (создаем список имеющихся файлов)
    echo %ftp_login%> check.del
    echo %ftp_password%>> check.del
    echo cd work>> check.del
    echo dir>>check.del
    echo quit>>check.del
     
    ::Заходим на ftp по сценарию check.del и получаем список всех файлов в логе (log.del)
    ftp -i -v -s:check.del %ftp_adress% > log.del
    del /q check.del 2>nul
     
    ::Создание сценария входа и действий на ftp-сервере (скачиваем файлы с сегодняшней датой)
    echo %ftp_login%> download.del
    echo %ftp_password%>> download.del
    echo cd work>> download.del
     
    ::Из лога выцепляем те строки, в которых содержится сегодняшняя дата и пишем имена
    ::файлов из этих строк в сценарий вместе с командой get  
    for /f "tokens=9" %%a in ('find /i "%nmonth% %day%" log.del') do (
    set file=%%a
    echo get !file:~0,-1!>>download.del
    )
     
    echo quit>>download.del
     
    del /q log.del 2>nul
     
    ::Заходим на ftp по сценарию download.del и скачиваем сегодняшние файлы
    ftp -i -v -s:download.del %ftp_adress%
    del /q download.del 2>nul

    Всего записей: 349 | Зарегистр. 22-12-2006 | Отправлено: 18:52 11-04-2007
    euheny



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

    Код:
    @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  

    Т.е.
     
    cmd.exe /k cd "%1"
     
    Ну так вот у меня такая строка    
     
    cmd.exe /k cd "%L"
     
    делает тоже самое
     
    Вот я и хочу узнать почему ? Что это за параметр %L
     
    Elroir

    Цитата:
    И почему "Неужели"

    Ну так неудобно же
    Многие батники имееют отношение к конкретным объектам(файлы,папки ...)
    А их местоположение частенько меняется по различным причинам.
    Так что получается нужно либо в батнике указывать новый путь , либо батник ложить к файлу.А если ещё меняется и название файла...
     
    А так выделил файл и из контекстного меню запустил батник для него - Удобно!
     
    А вот если задач много , то и поинтересовался как бы вложения в контекстном меню организовать.
     

    Всего записей: 4052 | Зарегистр. 22-11-2006 | Отправлено: 00:35 12-04-2007
    igor_andreev

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

    Цитата:
    Что это за параметр %L

    То же самое, что %1, только будет передано длинное имя файла. Работает только в реестре, в самом проводнике или комстроке не используется.

    Цитата:
    Ну так неудобно же

    Вообще никогда не задумывался над этим. cmd.exe запускается в проводнике по хоткею в той папке, где нахожусь. Если в Fare "сидю" - там своя комстрока есть. Батники, что-то делающие регулярно, таких большинство, запускает планировщик. Несколько папок, в которых мои батники живут, тоже открываются быстро по хоткею и никакого труда не составляет щелкнуть мышой по нужному.

    Цитата:
    А так выделил файл и из контекстного меню запустил батник для него - Удобно!  
     
    А вот если задач много , то и поинтересовался как бы вложения в контекстном меню организовать.

    У тебя в проводнике есть папка SendTo, создаешь в ней папку Batch и полный вперед, создавай в ней другие подпапки(будут раскрываться как подменю), ярлыки на любые батники в любых количествах.
     

    Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 01:15 12-04-2007
    Elroir



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

    Цитата:
    cmd.exe запускается в проводнике по хоткею в той папке, где нахожусь

    Если не секрет ()- каков механизм?

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 01:56 12-04-2007 | Исправлено: Elroir, 02:01 12-04-2007
    igor_andreev

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir
    Да почти такой-же, как в твоем батнике для перезапуска открытых окон проводника. nnCron по хоткею читает заголовок активного окна проводника(у меня там завсегда полный путь прописан) и запускает cmd.exe в этой папке.

    Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 02:09 12-04-2007
    euheny



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    igor_andreev
     
    О !... , удовлетворён твоим ответом на 100%.Папка SendTo ... и как я до сих пор не сообразил для батников приспособить - ведь постоянно её колупаю ...
    Цитата:
    читает заголовок активного окна проводника
    А вот здесь мне тоже надо.Давно ищу способ.Нужно закрыть из батника окно проводника для конкретной папки(т.е. видимо тоже нужно читать заголовок)
    Ну и как обычно желательно без сторонних утилит.
     

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



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir
    igor_andreev
    euheny
     
     
    ну не знаю зачем крона здесь, когда это поддерживается самой системой
    а вообще reg-файлик для вкючения этой функции выглядит так
     
    Windows Registry Editor Version 5.00
    [HKEY_CLASSES_ROOT\Directory\shell\Коммандная строка...\Command]
    @="cmd.exe /k cd \"%1\""
     
    ну и ессно можно ставить приглашение комстроки на свое усмотрение

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 05:15 12-04-2007 | Исправлено: Nagual, 05:18 12-04-2007
    VladimirKvach

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Друзья, подкажите какой-нибудь виндовый бесплатный ftp uploader, который бы все параметры брал из командной строки и работал в виде GUI-евого бегунка.
     
    PS Сейчас для этой цели пользую curl, но неокрепшая пользовательская психика требует привычных интерфейсов
     
    Спасибо.

    Всего записей: 23 | Зарегистр. 03-04-2006 | Отправлено: 05:30 12-04-2007
    Elroir



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

    Цитата:
    ну не знаю зачем крона здесь

    Именно для того, чтобы можно было использовать вызов по hotkey.
    А при добавлении контекстного меню в папку - надо еще мышкой куда-то лезть

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 10:27 12-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.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru