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

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



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

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

    Ну, мне например, нравится утилита ufdprep.exe из пакета  UFD Preparation Tool for Windows XP Embedded.
    А с чего ей не стать загрузочной? Format.com делает нормальный загрузочный сектор и в FAT и в NTFS, Bios прекрасно определяет такую флэшку как UsbFlashDisk. Я не встречал проблем - все прекрасно грузится. Исключение - древние флэшки, они не всегда правильно распознаются биосом. А вот предложенная тобой утилита не делает загрузочные флэшки NTFS формата, хотя возможно я ошибаюсь.(с первого раза не получилось, потом не пробовал.)

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



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

    Цитата:
    условие не отрабатывается при соответствии папок, почему ??

     
    У меня всё работает, поставь после оператора "IF" параметр "/i"  Он нужен для игнора регистра:

    Код:
     
    if /i not "Folder1"=="%%~nxi"
     

     
    P.S. Надеюсь ты не забыл удалить пробелы в конце строк...

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 14:07 13-04-2007
    slayer120



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ
      и этим пробовал и strings.exe - не получилось.  
    Не поодерживает юникод. Такие же проблемы бывают с
    самбовскими шарами. Как решить не знаю.
    Файл отправил по почте.

    Всего записей: 303 | Зарегистр. 24-01-2007 | Отправлено: 14:12 13-04-2007 | Исправлено: slayer120, 14:29 13-04-2007
    Nagual



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

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

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    slayer120
    А пробовал запускать cmd.exe с параметром /U ? Тоже не реагирует?

    Всего записей: 1667 | Зарегистр. 08-12-2004 | Отправлено: 14:52 13-04-2007
    testir



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maza Faka
     
    удаляет все папки с именем  "11.04.2007" (
    поидее должен пропускать папку fujic  но и из неё все удаляет, пробовал уже и на 2000 винде и на xp все тоже самое,  запускаю только этот код,
    как у тебя он работает, пропускает  заданную папку и не удаляет от туда ничего ?  
     
    setlocal enabledelayedexpansion
    for /R  d:\temp\  %%i in (.) do (
    if /I not "fujic"=="%%~nxi" (
    if "%%~nxi"=="11.04.2007" (
    rd /s /q "%%i"
    )
    )
    )

    Всего записей: 15 | Зарегистр. 14-02-2007 | Отправлено: 15:16 13-04-2007
    NIKZZZZ



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

    Цитата:
    и этим пробовал

    Да, в этом файле честно все русские символы заменены на "?", конвертации не подлежит. А по поводу cmd.exe с параметром /U попробовать , конечно, нужно , но вряд-ли это поможет - это не стандартная дос-команда, она выводит все своими средствами. Альтернативу искать придется.  

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



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

    Цитата:
    А по поводу cmd.exe с параметром /U

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

    Всего записей: 303 | Зарегистр. 24-01-2007 | Отправлено: 15:26 13-04-2007
    NIKZZZZ



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    slayer120
    Только что скачал accesschk.exe более старую версию - ведет себя по другому. Попробуй, я послал ее в письме. Я к сожапению, прверить не могу.

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

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

    Цитата:
    флешка делается загрузочной из менеджера дисков diskmgmt.msc  
    это достаточно сделать один раз, так что качать спец утилы смысла не вижу

    А у меня кстати в PATH hpusbf.exe живет не из-за способности загрузочный диск MS-DOS делать, мне это не надо Были просто ситуации со сбойными флэшками, которые Windows в упор уже не видит, вроде как можно и выбрасывать уже USB-шку... А тулза от HP увидела и отформатировала.
     
     
    Добавлено:
    slayer120
    Кажись у accesschk.exe засада с русскими буквами
    http://forum.sysinternals.com/forum_posts.asp?TID=9887&KW=accesschk

    Всего записей: 1667 | Зарегистр. 08-12-2004 | Отправлено: 16:04 13-04-2007
    NIKZZZZ



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

    Цитата:
    Были просто ситуации со сбойными флэшками, которые Windows в упор уже не видит

    Ну , сюда еще можно добавить не-виндовую утилиту BootIt , позволяет форматировать "невидимые" флэшки.  

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



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

    Цитата:
    Попробуй
     
      Пробовал версию 2.0 она просто где раньше ??? все пропускает,  
    так что не судьба

    Всего записей: 303 | Зарегистр. 24-01-2007 | Отправлено: 16:41 13-04-2007
    aficio

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите плиз решить задачу!!  
     
    Нужен скрипт.
    Есть каталог с текстовыми файлами. Нужно переместить эти файлы на FTP в папку с текущей датой. ОС - Win XP.
    Т.е подключаемся к ФТП, создаем папку с текущей датой, перемещаем файлы (либо копируем ).  
    Спасибо!!!
     
    З.Ы. Начал делать сам но зациклился с созданием на ФТП папки с текущей датой

    Всего записей: 8 | Зарегистр. 29-06-2005 | Отправлено: 16:41 13-04-2007
    KapralBel



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

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

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Я знаю что %date% но при этом содается на ФТП папка %date% а мне надо чтоб создавалась папка с текущей датой и туда лились файлы.
    Приведу ниже что я делаю. Может это ппрояснит что я не так делаю.
     
    файл UPLOAD.BAT
     
    ftp -s:upload.txt
    del /q c:\tmp\*.txt
     
    файл UPLOAD.TXT
     
    open ftp.myftp.com
    login
    pass
    mkdir echo %date%
    binary
    prompt
    mput c:\tmp\*.txt
    quit

    Всего записей: 8 | Зарегистр. 29-06-2005 | Отправлено: 17:03 13-04-2007
    KapralBel



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

    Цитата:
    mkdir %date%

    А если так?
     
     
    Добавлено:
    aficio
    Вернее так
    1.cmd

    Код:
     
    @Echo Off
    Echo open ftp.myftp.com >upload.txt
    Echo login>>upload.txt
    Echo pass>>upload.txt
    Echo mkdir %date%>>upload.txt
    Echo binary>>upload.txt
    Echo prompt>>upload.txt
    Echo mput c:\tmp\*.txt>>upload.txt
    Echo quit>>upload.txt  
     
    ftp -s:upload.txt
    del /q c:\tmp\*.txt
     
     

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

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Извиняюсь скрин сбросил уже исправив по Вашему совету на echo
    при mkdir echo %date% - создает папку echo
    при mkdir %date% - создает папку %date%
     
    Я может не прав но может при присоединении к ФТП невозможно оперировать командами извлечения даты?

    Всего записей: 8 | Зарегистр. 29-06-2005 | Отправлено: 17:17 13-04-2007
    igor_andreev

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

    Цитата:
    Я может не прав но может при присоединении к ФТП невозможно оперировать командами извлечения даты?

    Прав. С ftp.exe %переменные% не прокатят. Но в батнике то можно оперировать, тебе KapralBel в пример 1.cmd привел. Там еще после mkdir надо добавить Echo cd %date%>>upload.txt

    Всего записей: 1667 | Зарегистр. 08-12-2004 | Отправлено: 17:25 13-04-2007 | Исправлено: igor_andreev, 17:29 13-04-2007
    aficio

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ПОСЛЕ ЭТОГО
     
     @Echo Off
    Echo open ftp.myftp.com >upload.txt
    Echo login>>upload.txt
    Echo pass>>upload.txt
    Echo mkdir %date%>>upload.txt
    Echo binary>>upload.txt
    Echo prompt>>upload.txt
    Echo mput c:\tmp\*.txt>>upload.txt
    Echo quit>>upload.txt  
     
    ftp -s:upload.txt
    del /q c:\tmp\*.txt  
     
    ПАПКА создалась, но файлы были записаны просто в корень а не в нее

    Всего записей: 8 | Зарегистр. 29-06-2005 | Отправлено: 17:35 13-04-2007
    Elroir



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

    Цитата:
    удаляет все папки с именем  "11.04.2007" (  
    поидее должен пропускать папку fujic  но и из неё все удаляет

    Пробуй так:

    Код:
     
    @echo off
    setlocal enabledelayedexpansion
    set "folder=fujic"
    set "delfold=11.04.2007"
    for /R d:\temp\ %%i in (.) do (  
    set "skip=no"
    call :checkname "%%i"
    if "!skip!"=="no" (
    if "%%~nxi"=="%delfold%" (rd /s /q "%%i")
    )
    )
    goto :EOF
    :checkname
    for /f "tokens=1* delims=\" %%a in (%1) do (
    if "%%a"=="" goto :EOF
    if /i "%%a"=="%folder%" (
    set "skip=yes"
    goto :EOF  
    ) else (
    if not "%%b"=="" call :checkname "%%b"
    )
    )  
     

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 17:40 13-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