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

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

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

vu1tur (26-05-2009 11:39): часть 7 — http://forum.ru-board.com/topic.cgi?forum=62&topic=17154#1  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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-файлах 6
(часть 1, часть 2, часть 3, часть 4, часть 5)
Вопросы, задачи и их решения по работе с командными файлами, а также сопутствующие ссылки.

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

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





    http://forum.ru-board.com/topic.cgi?forum=62&topic=17154

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 23:07 04-11-2008 | Исправлено: vu1tur, 11:38 26-05-2009
    igor_andreev

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Никак, с фтп robocopy не работает. На фтп-шник можно заливать файлы консольными wput.exe, curl.exe, ncftpput.exe, ftps.exe или стандартным виндовым ftp.exe

    Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 14:21 08-03-2009
    Herissen



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    так понятно, подскажите пожалуйста команду чтобы в конечной папке оставалось все что туда копирует робокопи, (тоесть при удалении файла из исходной папки, на конечную это не влияло).

    Всего записей: 12 | Зарегистр. 26-02-2009 | Отправлено: 15:18 08-03-2009
    igor_andreev

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    robocopy /? - там все написано. Удаляют  файлы ключи /MIR и /PURGE

    Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 15:31 08-03-2009
    ProUkorN

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

    Код:
    copy %1 C:\srtFtpSecFiles\temp_%~n1.txt
    echo %~n1 >> C:\srtFtpSecFiles\temp_%~n1.txt
    if %~z1 LEQ 30 (
    call :read_settings C:\srtFtpSecFiles\temp_%~n1.txt || exit /b 1  
    echo Password=%PASS% >> C:\1121.txt
    echo Username=%USER% >> C:\1121.txt
    echo FullName=%USER% >> C:\1121.txt
    exit /b 0  
    :read_settings  
    for /f "delims==,_ tokens=1,2" %%i in (C:\srtFtpSecFiles\temp_%~n1.txt) do (
    set %%i=%%j
    )
    exit /b 0
    ) else (
    del C:\srtFtpSecFiles\temp_%~n1.txt
    del %1
    exit /b
    )

    сделал по образу и подобию http://www.rsdn.ru/article/winshell/batanyca.xml
    пример работает. мой нет. почему?
     
    Задача: на вход файл с именем user_* внутри pass=* (или же лучше просто пасс внутри(без pass=), только не знаю как. Если имя использовать вида: user=* - приводит к непонятным глюкам.)
    цель вывести их или в переменные для другого бат-файла или записать в файл вида

    Код:
    Password=pass
    Username=user
    Fullname=user

     
    при исполнении-  
    вывод в файл  

    Код:
    Password=
    Username=
    FullName=

     

    Всего записей: 16 | Зарегистр. 03-01-2009 | Отправлено: 21:37 08-03-2009 | Исправлено: ProUkorN, 21:40 08-03-2009
    MIHMIH007



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Народ помогите плиз сделать батник следующего вида:
    1. Копирование файлов с папки которая лежит рядом с батником в папку C:\Program Files
    2. Добавление значений в реестр (либо просто запуск файла реестра)
    3. Запуск определённого приложения.
    4. Нужно чтобы все значения с реестра которые добавились и файлы которые скопировались удалились после закрытия приложения
     
    И возможно ли сделать проверку на файлы и значения в реестре ..... то есть если есть такой файл то не копировать или если есть такое значение в реестре то не добавлять...

    Всего записей: 743 | Зарегистр. 05-12-2006 | Отправлено: 22:07 08-03-2009
    ponand

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите плиз....
    Нужно найти в txt строки по шаблону например "http://" и в этой строке заменить src"" на src"1.png" каждый раз увеличивая номер файла на 1 и записать в другой файл, строки не содержащие шаблон записать в файл без изменений

    Всего записей: 56 | Зарегистр. 14-07-2008 | Отправлено: 22:38 08-03-2009 | Исправлено: ponand, 22:53 08-03-2009
    Mr_Hat



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    MIHMIH007
    задача не развернута,
    папка по пути C:\Program Files\Существует или нет
    если да то
    Код:
    copy /y Файл "%ProgramFiles%\Папка\"

    если не существует то
    Код:
    xcopy /s /e /y Файл "%ProgramFiles%\Папка\"

    про реестр тоже, ключи и параметры нужны..
    regedit /s - добавить
     
    короче давай задачу полностью.

    Всего записей: 984 | Зарегистр. 04-10-2005 | Отправлено: 23:19 08-03-2009 | Исправлено: Mr_Hat, 23:22 08-03-2009
    Maza_Faka



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

    Цитата:
    1. Копирование файлов с папки которая лежит рядом с батником в папку C:\Program Files


    Код:
     
    Copy /Y "*.*" "%PROGRAMFILES%"
     

     

    Цитата:
    2. Добавление значений в реестр (либо просто запуск файла реестра)

    1.

    Код:
     
    Reg Add "HKLM\Software\MyProgram" /T REG_SZ /V "Path" /D  
    C:\Program Files\MyProgram /F
     

     
    2.
    REGEDIT /S Config.reg
     

    Цитата:
    3. Запуск определённого приложения.


    Код:
     
    Start "" "C:\Program Files\MyProgram\prog.exe"
     

     

    Цитата:
    4. Нужно чтобы все значения с реестра которые добавились и файлы которые скопировались удалились после закрытия приложения


    Код:
     
    Del /F /Q "*.*"
     

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 06:44 09-03-2009
    ponand

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите плиз....
    Как правильно изменить значение переменной test в этом батнике
    @echo on
    set "test=1"
    For /F "tokens=*" %%z in (11\123.txt) do (
    For /F "tokens=1,2,3,4,5,6,7,* delims= " %%a in ("%%z") do (
    if "%%g" == "" (echo %%z>>11.txt) else (
    For /F "tokens=1* delims=:" %%A in ("%%g") do (
    if HREF^=^"op:==%%A: (echo %%z>>11.txt) else (
    echo %%a src="%test%.png" %%c %%d %%e %%f %%g %%h>>11.txt
    set /a "test=%test%+1"
    )
    )
    )
    )
    )

    Всего записей: 56 | Зарегистр. 14-07-2008 | Отправлено: 13:55 09-03-2009
    Maza_Faka



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

    Цитата:
     
    Elroir
    В обычном случае, чтобы узнать значение переменной окружения, надо воспользоваться конструкцией %переменная%. Однако, если значение переменной меняется внутри цикла и читается там же, то для корректной работы батника, нужно использовать команду setlocal enabledelayedexpansion и вместо символа "%", использовать символ "!". Иначе, значение переменной в цикле будет всегда одним и тем же - таким, каким было до входа в цикл.
     

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 14:30 09-03-2009
    Teboyev

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите пожалуйста. Мне нужно чтоб батник забирад с локального пути файл созданый сегодня и кидал его на фтп. Ковырял forfiles  - не получается.  Сделал батник но он берет только указаные файлы, вот  
     
    chcp 866
    open ftp.ru
    login
    password
    cd ***\***
    put c:\3\2\1\10000080.txt
    put c:\4\3\2\20000081.txt
    disconnect
    pause
     
     - как туда forfiles воткнуть?  

    Всего записей: 5 | Зарегистр. 26-05-2008 | Отправлено: 18:03 09-03-2009
    trigliff

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, есть ли возможность (без извращения) у sed или ssed вставить переменную, содержащую слеши в регулярное выражение? Ну типа как через цитату \Q...\E

    Всего записей: 576 | Зарегистр. 10-01-2003 | Отправлено: 22:01 09-03-2009 | Исправлено: trigliff, 22:01 09-03-2009
    Maza_Faka



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

    Цитата:
    Ковырял forfiles  - не получается

    Можно так:

    Код:
     
    @Echo Off
     
    Set "FTPDIR=C:\FTPSend"
     
    Forfiles /M *.txt /D +%DATE% /C "cmd /c copy "@path" "%FTPDIR%""
     

    А кидать на FTP из папки %FTPDIR%.
     
    Добавлено:
    trigliff
    Покажите пример.

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 07:46 10-03-2009
    trigliff

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

    Цитата:
    Покажите пример.

    Пример чего?
     
    Короче приблизительно так, это абстрактный пример. Допустим имеется хеш с именами файлов. Вместо ключей надо поставить URL.
     
    Вот так ясен пень не выходит
    set URL=ftp://na_derevnu_dedu.ru/archive/
    ssed -R s/bla_bla/%URL%/ my_file.txt
     
    Под извращениями понималось экранирование слешей отдельным выражением.

    Всего записей: 576 | Зарегистр. 10-01-2003 | Отправлено: 09:00 10-03-2009 | Исправлено: trigliff, 09:18 10-03-2009
    Maza_Faka



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    trigliff
    "Эскейпить" прямые слеши

    Код:
     
    set URL=ftp:\/\/na_derevnu_dedu.ru\/archive\/
    Echo test_bla_bla_test | Sed "s/bla_bla/%URL%/"
     

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 09:16 10-03-2009 | Исправлено: Maza_Faka, 09:16 10-03-2009
    trigliff

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

    Цитата:
    "Эскейпить" прямые слеши

    Вот под этим я подразумевал извращение.
    Дело в том, что реальный пример сложнее и эта переменная используется не только в регулярке.

    Всего записей: 576 | Зарегистр. 10-01-2003 | Отправлено: 09:26 10-03-2009
    Maza_Faka



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

    Цитата:
    эта переменная используется не только в регулярке

    Создать две переменные, с эскейпами и без

    Код:
     
    @Echo Off
     
    set URL=ftp://na_derevnu_dedu.ru/archive/
     
    Echo %URL% | Sed "s/\//\\\//g">tmp.sed
    For /F %%A In (tmp.sed) Do Set sURL=%%A
    Del /F /Q tmp.sed
     
    Echo URL = %URL%
    Echo.
    Echo sURL = %sURL%
     
    pause>Nul
     

    Изврат, конечно, но, что поделать?

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 10:48 10-03-2009
    trigliff

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

    Цитата:
    Создать две переменные, с эскейпами и без  

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

    Всего записей: 576 | Зарегистр. 10-01-2003 | Отправлено: 11:21 10-03-2009
    Maza_Faka



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

    Цитата:
    я sed практически не пользуюсь и не знаю его "особенностей"

    Я тоже знаю его не очень хорошо, возможно

    Цитата:
     
    он поддерживает каким-то образом экранирование в виде цитаты
     

    Может сейчас "подойдёт" кто-нибудь, кто знает Sed лучше.

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 11:53 10-03-2009
    JohnRD

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

    Код:
    dir /x
    10.03.2009  11:19    <DIR>          DRWEBE~2     DrWeb Enterprise Suite
    10.02.2009  17:44    <DIR>          DRWEBE~1     DrWeb Enterprise Suite OLD

     
    поскольку у DrWeb в реестре используются короткие имена

    Код:
    [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\spider]
    "ImagePath"=REG_EXPAND_SZ:\??\C:\PROGRA~1\DRWEBE~1\spider.sys

     
    спасибо

    Всего записей: 205 | Зарегистр. 29-08-2004 | Отправлено: 12:04 10-03-2009
       

    Страницы: 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-файлах 6
    vu1tur (26-05-2009 11:39): часть 7 — http://forum.ru-board.com/topic.cgi?forum=62&topic=17154#1


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru