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

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



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Dantis, да, все верно, поправил код
    родной утилой ftp не работаю
    юзаю для этих целей curl
    текущая версия без ssl
    Подробнее...

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 13:57 27-03-2008
    igor_andreev

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

    Цитата:
    В результате получаю бесконечный поток  
    ftp -s:ftp.txt  
     
    такое ощущение, что запущен в бесконечном цикле батник ECHO ftp -s:ftp.txt  
    Ниче не понимаю..

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

    Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 14:11 27-03-2008 | Исправлено: igor_andreev, 14:12 27-03-2008
    sipok

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

    Цитата:
    Значит - либо ставь на конце  значок \,  
    xcopy /i /Y f:\folder\*.* B:\%%i\  
     либо юзай /i  

     
    При выполнении   xcopy /Y f:\folder\*.* B:\%%i\*.*  
    или                      xcopy /i /Y f:\folder\*.* B:\%%i --- уже пробовал )))
    выдает ошибку : Unable to create directory - B:\4

    Всего записей: 18 | Зарегистр. 15-11-2006 | Отправлено: 15:34 27-03-2008 | Исправлено: sipok, 15:46 27-03-2008
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sipok
    Возьми B:\%%i\*.* и B:\%%i в кавычки
    и поставь все-таки обратный слэш в конце.

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 16:46 27-03-2008 | Исправлено: Elroir, 17:01 27-03-2008
    Rush

    Уже за тридцать...
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Разрешите пару вопросов...
    1) Посмотрел про замену в файлах через sbs2.com - эта утилитка регэкспы понимает?
    2) А стандартными средствами замену сделать можно? С регулярными, конечно...

    Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 17:03 27-03-2008
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Rush, 2) если сильно постараться, думаю, можно
    for %%a in (TXTSETUP.SIF DOSNET.INF) do more %%a|findstr/v winntbbu.dll>>%%a_&move/y %%a_ %%a
    такую конструкцию использовал для удаления строк, содержащих winntbbu.dll
    также если удалить еще winntbbu.dl? из дистрибутива winnt, мы получим клаcсическую установку winnt с полным описанием процесса установки и необходимыми прогресс барами
    findstr/r — Поиск строк как регулярных выражений
    но опять же тут свои подводные камни есть и это как всегда спецсимволы
    имхо на скриптах с этим проблем никаких нет, и, поскольку ты в них силён, почему бы не использовать их? тем более, что и скорость обработки файлов возрастает в разы даже по сравнению с sbs2.com

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 17:42 27-03-2008 | Исправлено: Nagual, 17:44 27-03-2008
    Blibass

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем привет.У меня такой вопрос,возможно ли реализовать с помощью bat пароль на СD-DVD диск. Что бы с загрузки CD-DVD сразу появлялось строка(окно) для ввода пароля для этого же СD-DVD диска.Если да, то прошу обьяснить как сделать.

    Всего записей: 3 | Зарегистр. 27-03-2008 | Отправлено: 17:48 27-03-2008
    Elroir



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

    Цитата:
    1) Посмотрел про замену в файлах через sbs2.com - эта утилитка регэкспы понимает?

    Нет.
     
    Blibass

    Цитата:
    У меня такой вопрос,возможно ли реализовать с помощью bat пароль на СD-DVD диск

    Нет.

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 18:01 27-03-2008
    Blibass

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

    Всего записей: 3 | Зарегистр. 27-03-2008 | Отправлено: 18:17 27-03-2008
    Rush

    Уже за тридцать...
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Nagual

    Цитата:
    имхо на скриптах с этим проблем никаких нет, и, поскольку ты в них силён, почему бы не использовать их? тем более, что и скорость обработки файлов возрастает в разы даже по сравнению с sbs2.com

    Ты прав, конечно, для себя я напишу скрипт, если надо. Но дело в том, что мне нужна такая команда, про которую антивирус не будет выдавать запрос на авторизацию скрипта.  
    Хотелось сделать, типа, расширение стандартной команды StrChange (аналог Replace) для Multimedia Builder. Под девизом - никаких дополнительных библиотек. Плагин или утилитку сделать не проблема, но... было желание средствами винды. Такие, понимаешь, пироги...
     
    Добавлено:

    Цитата:
    findstr/r — Поиск строк как регулярных выражений  
    но опять же тут свои подводные камни есть и это как всегда спецсимволы

    Надо попробовать. Может спецсимволы в кавычках или еще каким образом выводятся из процесса чтения как управляющие...

    Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 18:30 27-03-2008
    Ortios



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    А что, неужели нет никакой утилитки работающей с регулярными выражениями и которую можно прикрутить к бат-файлу. Может кто знает.
    Несколько лет назад мне попалась какая-то версия утилитки Advasar сейчас уже найти не могу. Так вот, в диалоговом режиме она работала блестяще, пожалуй даже лучше, чем фаровский плагин S&R и помнится мне, что у Advasara была возможность работать из командной строки, используя настроечный ini-файл, но мне тогда не удалось довести до ума эту возможность и заставить батник работать в автомате поскольку прога была платной и задавала вопросы типа продолжать дальше или нет. Ключа к ней я так и не достал и забросил ее. Сейчас же, роясь в инете я натыкался на версию Advasara, но она по-прежнему платная 100$. Может у кого есть полная версия?

    Всего записей: 73 | Зарегистр. 24-12-2007 | Отправлено: 00:07 28-03-2008
    01MDM



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

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

    Почему нет.
    sed,awk,grep и прозводные от них - [a-z]sed, .grep и т.д

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 00:56 28-03-2008
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Rush
    Цитата:
    Но дело в том, что мне нужна такая команда, про которую антивирус не будет выдавать запрос на авторизацию скрипта.
    попробуй гибридный сценарий, может поможет

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



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

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

    Спасибо, помогло!
     
    А как можно скопировать файлы с сервера в свою конкретную папку?
    Т.е. есть на сервере папка 1\ в которой куча файлов, подпапок, в них снова файлы и т.д. А нужно папку 1\ со всем содержимым скопировать на свой локальный компьютер.. скажем в папку D:\2\  
    Это возможно?
    Попробовал так:
    prompt n
    mget 1\*.*

    Но такая команда не затрагивает подпапки.. да и копирует папку по умолчанию(насколько понимаю, в туже папку, что и в источнике)
     
    update.. короче погуглил, получается что для этой задачи надо использовать сторонние программы, а хотелось бы встроенными средствами..
    Ладно, буду мучать wget
     
     
     

    Всего записей: 702 | Зарегистр. 17-10-2006 | Отправлено: 03:22 28-03-2008 | Исправлено: gbcfkf, 04:51 28-03-2008
    slayer120



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

    Цитата:
    При выполнении   xcopy /Y f:\folder\*.* B:\%%i\*.*    

     
    Цитата:
    Значит - либо ставь на конце  значок \,  

     Ну а зачем в B:\%%i\*.*  *.* на конце указываешь?
     Вот такой код работает у меня  
    @echo off  
    for /f "tokens=1* delims= " %%i in ('dir /A:D /B') do (  
    rem    echo %%i        
            xcopy /Y c:\temp\*.* \\comp\share\temp\%%i\  
     
    )    
    Копирует все файлы из каталога temp  каталоги существующие в текущей папке
    (я создал 1, 2, 3 каталоги) если их нет в приемнике они создаются

    Всего записей: 303 | Зарегистр. 24-01-2007 | Отправлено: 10:24 28-03-2008 | Исправлено: slayer120, 10:34 28-03-2008
    Nagual



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

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

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    добрый день/вечер
     
    нашел вариант запуска бат файла через RUNAS причем вписывая пароль (если необходимо)
     

    Код:
    set WshShell = CreateObject("WScript.Shell")
    WshShell.Run "runas /user:domain\ivanov-aa ""\\domain.local\soft\1.cmd"""
    WScript.Sleep 100
    WshShell.Sendkeys "password~"

     
    если необходимо вбить руками пароль
    заменить на
    WshShell.Sendkeys ""
     
    если кому пригодиться

    Всего записей: 205 | Зарегистр. 29-08-2004 | Отправлено: 14:19 28-03-2008 | Исправлено: JohnRD, 14:33 28-03-2008
    igor_andreev

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

    Цитата:
    докачивает ли она файлы на сервер по протоколу ftp  
    если нет, то какая тулза обладает такими возможностями?

    curl, wput

    Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 14:45 28-03-2008
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    igor_andreev, докачка точно есть? если можно пример
    у меня локально компилится файл, размер которого понемногу постоянно растет, и поскольку весит он уже немало, встал ребром вопрос о его докачке на ftp сервер, а не полной перезакачке на сервер

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 16:50 28-03-2008
    igor_andreev

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

    Код:

    curl -C - -T localfile.zip -u user:password ftp://host/remotedir/remotefile.zip

    Если ftp корректно возвращает команду SIZE - то "curl -C - " использует APPE remotefile.zip. Добавь еще curl-у команду --verbose - увидишь сам.
     
     
    Добавлено:

    Цитата:
    у меня локально компилится файл, размер которого понемногу постоянно растет

    А что, изменяется только добавляемая часть?

    Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 16:58 28-03-2008 | Исправлено: igor_andreev, 17:07 28-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.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru