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

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    bmax,  
    Цитата:
    Если количество файлов в паке которой считам меньше десяти как сделать так что бы в имени файла к количеству файлов добавлялся 0, т.е. , тчобы число всегда было двузначным  
    чтобы всегда было двузначным:
    set "count=0%count%"
    set "count=%count:~-2%"
    в одну строку не слеплять...
     
    ну или тривиально через if напиши приписывание ноля...
    А если вдруг случится 101 файл - что делать будешь?

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 22:35 16-04-2008
    igor_andreev

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

    Цитата:
    А можно пример ?

    Да перед GET просто напиши.
     
    binary
    get file
    quit
     
    "File too large for TYPE A" - это значит файл слишком большой, чтоб качать его, как ascii (по умолчанию ftp.exe все тянет, как текстовые файлы)

    Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 22:40 16-04-2008
    01MDM



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

    Код:
     
    wget -c "ftp://dnl-ru1.kaspersky-labs.com/zips/av-i386&ids-cumul.zip"
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 23:15 16-04-2008
    Serg41

    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    народ, подскажите, пожалуйста, что я не так делаю.
    Надо подключиться к ftp и скачать *.rar файлы и положить их себе, после чего их удалить от туда (с ftp) и файлики не удаляются, понять причину не могу
    вот то что я сделал:
     
    bat файл
    ftp -v -i -s:cons.txt prime.perm.ru
     
    файл cons.txt
    *логин*
    *пароль*
    type binary
    mget *.rar
    delete *.rar
    quit
     
     и bat потом дальше идет а файлики на ftp не удаляются, разрешение на удаление есть, через Total Commander удаляю их спокойно
     
    заранее спасибо

    Всего записей: 77 | Зарегистр. 18-09-2006 | Отправлено: 07:55 17-04-2008
    bmax

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Огромное спасибо wolf0425

    Цитата:
    чтобы всегда было двузначным:  
    set "count=0%count%"  
    set "count=%count:~-2%"  
    в одну строку не слеплять...  
     
    ну или тривиально через if напиши приписывание ноля...  
    А если вдруг случится 101 файл - что делать будешь?

     
    Нет  у меня максимум 50 файлов, еще раз огромное спасибо всем, выручили.

    Всего записей: 32 | Зарегистр. 13-09-2006 | Отправлено: 09:21 17-04-2008
    JohnRD

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

    Код:
    Set cWork=0
    For /l %%a In (5,1,10) Do Call :CompWork 192.168.60.%%a
    If %cWork%==0 (echo end)
    Goto :EOF
     
    :CompWork
    Echo Ping %1
    Ping -n 1 %1 >Nul
    If ErrorLevel 1 (Goto :EOF)
    If ErrorLevel 0 (Set cWork=1) | do psexec \\%1 -s -c 1.cmd
    GoTo :EOF

     
    есть еще вопрос  
    как батником выставить переменную в саму систему немедленно?
    если пользовательскую так применится только после перелогина

    Код:
    reg add HKCU\Environment /v SAPLOGON_INI_FILE /t REG_EXPAND_SZ /d %%USERPROFILE%%\SapWorkDir\SapLogon.ini /f

    если системную после перезагрузки

    Код:
    reg add HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment /v SAPLOGON_INI_FILE /t REG_EXPAND_SZ /d C:\SAPconfig\SapLogon.ini /f  

    спасибо

    Всего записей: 205 | Зарегистр. 29-08-2004 | Отправлено: 11:46 17-04-2008 | Исправлено: JohnRD, 12:20 17-04-2008
    igor_andreev

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Serg41
    Для работы с одним конкретным файлом на ftp используются команды GET, PUT, DEL(DELETE), а для работы с масками файлов - команды MGET, MPUT, MDEL(MDELETE).
     
    В скрипт, для отключения интерактивного режима(чтоб не было вопросов от ftp-шника) перед командами MGET, MPUT, MDEL необходимо вставлять команду PROMPT
    JohnRD

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

    рандлл32 юзер32.дээлэл,апдейтперюзерсистемпараметры

    Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 14:01 17-04-2008
    Ortios



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    А никто не подскажет как Sed-ом убить все html-теги. Версия Seda - 3.59. Элементарная задача, но ничего пока не выходит.

    Всего записей: 73 | Зарегистр. 24-12-2007 | Отправлено: 14:08 17-04-2008
    igor_andreev

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ortios
    В гугле набери "sed + remove most html tags" (без кавычек) кучу oneliner-ов и примеров найдешь. Примеры в основном для Линукса, поэтому одинарные кавычки(') меняй на двойные("). Самый простой вариант наверно этот :

    Код:

    sed -e "s/<[^>]*>//g" test.html>test.txt  


    Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 14:23 17-04-2008 | Исправлено: igor_andreev, 14:37 17-04-2008
    Ortios



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вот спасибо, igor_andreev, двойных кавычек мне и не хватало. Неделю с Sed-om не возился, так все из головы вылетело.

    Всего записей: 73 | Зарегистр. 24-12-2007 | Отправлено: 15:02 17-04-2008 | Исправлено: Ortios, 15:27 17-04-2008
    SymA



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как залить по фтп файл на somename.narod.ru ?
     
    БАТ:

    Код:
    ftp -v -s:somecommands.txt somename.narod.ru

     
    somecommands.txt:

    Код:
    somename
    password
    type binary
    PUT C:\windows\some.rar /
    quit  
     

     
    на narod.ru написано: "somename:password@ftp.narod.ru" (совал и в бат и в текстовый, но тщетно)

    Всего записей: 56 | Зарегистр. 10-12-2007 | Отправлено: 19:14 17-04-2008 | Исправлено: SymA, 23:33 17-04-2008
    BorlandIMHO

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SymA
    А что Ты хочешь получить в результате?
    У меня, например, по вышеприведённой команде вообще ничего не создаётся...
    И, похоже, не должно - стоило добавить arc в качестве имени архива (после m5) - как тут же создался архив arc20080417233633.rar, в который упаковался %systemroot%\some.txt

    ----------
    http://www.imho.ws

    Всего записей: 2402 | Зарегистр. 12-10-2006 | Отправлено: 23:51 17-04-2008
    SymA



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BorlandIMHO
    Спасибо, уже решил вопрос.
     
    Интересует как залить файл по фтп на narod.ru (смотреть предидущий пост)

    Всего записей: 56 | Зарегистр. 10-12-2007 | Отправлено: 00:08 18-04-2008
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SymA
    curl -T file.ext ftp://login:pass@ftp.narod.ru/dir/subdir/

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 01:22 18-04-2008
    Serg41

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

    Цитата:
    igor_andreev

    большое спасибо, все заработало

    Всего записей: 77 | Зарегистр. 18-09-2006 | Отправлено: 07:43 18-04-2008
    bmax

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Господа, подскажите что не так.
    Необходимо чтобы перед тем как скопировать батник проверял файл на наличие в нем строки <QW12345. Смотреть необходимо начиная с 7-ой строки и вслучае если такая подстрока есть файл не копировать, если же такой подстроки нет - то копирование выполняется.
     
    @echo off
    FOR /f "tokens=*" %%i in ('dir /b /s /a-d "D:\2\*.*"') do set /a count+=1
    IF EXIST D:\2\*.* set "count=0%count%" ELSE
    set "count=00%count%"
    set "count=%count:~-2%"
    for /f "tokens=*" %%c in ('dir "D:\2\*.*" /o:-d /t:c /b /a:-d') do (
    for /f "skip=6" %%q in ('find "<QW12345" D:\1\%%c') do set flag=1
    if not defined flag copy /y /D "D:\1\%%c" "D:\2\11%date:~0,2%%count%.dvc"
    goto :eof
    )

    Всего записей: 32 | Зарегистр. 13-09-2006 | Отправлено: 14:24 18-04-2008
    01MDM



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

    Код:
     
    @echo off
    for /f "tokens=*" %%i in ('dir /b /s /a-d D:\2\*.*') do (
        more +6 "%%i" | findstr "<QW12345" 1>nul || (
                    здесь копируешь "%%i"
            )
    )  
     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 15:00 18-04-2008
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    set "count=0"
    FOR /f "tokens=*" %%i in ('dir /b /s /a-d "D:\2\*.*"') do set /a count+=1
    set "count=00%count%"  
    set "count=%count:~-2%"
     
    а это шапка без if-else
     
    вот толкьо интересно - с чего dir /b /s затесалось в первый фор и пропало в копировании

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 15:34 18-04-2008 | Исправлено: wolf0425, 15:37 18-04-2008
    bmax

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM Спасибочки, работает  
     
    @echo off
    FOR /f "tokens=*" %%i in ('dir /b /s /a-d "D:\2\*.*"') do set /a count+=1
    IF EXIST D:\2\*.* set "count=0%count%" ELSE
    set "count=00%count%"
    set "count=%count:~-2%"
    for /f "tokens=*" %%c in ('dir "D:\1\*.*" /o:-d /t:c /b /a:-d') do (
    more +6 "D:\1\%%c" | findstr "<EA323" 1>nul || (
    copy /y /D "D:\1\%%c" "D:\2\11%date:~0,2%%count%.dvc"
    goto :eof
    )
    )
     
     

    Всего записей: 32 | Зарегистр. 13-09-2006 | Отправлено: 15:37 18-04-2008
    wolf0425



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

    Цитата:
     goto :eof  
    э... тебе надо скопировать один файл или много?

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 15:43 18-04-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