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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KapralBel
    зачем помнить, когда rar/? говорит нам об этом
     
    iamantbk
    попробуй такие ключи
    -xfilename1* -xfilename2* и тд

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 13:31 13-10-2008
    Smitis



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

    Цитата:
    подскажите пожалуйста где добыть это самое robocopy

    Самую последнюю версию robocopy, совместимую с WinXP, можно взять сдесь.
    В Висте/2008 robocopy уже есть в составе системы и версия новее (некоторые фичи добавлены), но в XP, к сожалению, уже не работает

    ----------
    Разум когда-нибудь победит

    Всего записей: 2425 | Зарегистр. 09-02-2003 | Отправлено: 14:12 13-10-2008
    Nagual



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

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

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Пожалуйста, помогите.
    Никак не пойму, как переместить папку на другой диск?
    Команда move не подходит для этого.
    Может есть у кого готовый скрипт?

    Всего записей: 8 | Зарегистр. 13-11-2007 | Отправлено: 03:38 14-10-2008
    Elroir



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

    Цитата:
    Никак не пойму, как переместить папку на другой диск?

    Скопировать (командой xcopy) и удалить оригинал (командой rd).

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 04:27 14-10-2008
    tigran_astranet

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Приветсвую всех!
     
    Прошу помощи в следующем вопросе, при запуске данного батника:
     
    @echo off
    if "%OS%" == "Windows_NT" setlocal
    rem ---------------------------------------------------------------------------
    rem Start script for the CATALINA Server
    rem
    rem $Id: startup.bat,v 1.4 2002/01/15 02:55:38 patrickl Exp $
    rem ---------------------------------------------------------------------------
     
    SET JAVA_HOME=C:\j2sdk1.4.2_08\
     
    rem Guess CATALINA_HOME if not defined
    if not "%CATALINA_HOME%" == "" goto gotHome
    set CATALINA_HOME=.
    if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
    set CATALINA_HOME=..
    :gotHome
    if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
    echo The CATALINA_HOME environment variable is not defined correctly
    echo This environment variable is needed to run this program
    goto end
    kHome
     
    set EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat
     
    rem Check that target executable exists
    if exist "%EXECUTABLE%" goto okExec
    echo Cannot find %EXECUTABLE%
    echo This file is needed to run this program
    goto end
    kExec
     
    rem Get remaining unshifted command line arguments and save them in the
    set CMD_LINE_ARGS=
    :setArgs
    if ""%1""=="""" goto doneSetArgs
    set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
    shift
    goto setArgs
    oneSetArgs
     
    @rem start catalina in separate window
    @rem call "%EXECUTABLE%" start %CMD_LINE_ARGS%
     
    @rem start catalina in current window
    call "%EXECUTABLE%" run %CMD_LINE_ARGS%
     
    :end
     
    он запрашивает нажатие клавиши....Можно ли этого избежать? Очень неудобно добавлять данный батник в планировщик,так как он сам не сработает? а ждет действий со стороны пользователя!

    Всего записей: 9 | Зарегистр. 12-09-2008 | Отправлено: 09:38 14-10-2008 | Исправлено: tigran_astranet, 10:14 14-10-2008
    avkorets



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Люди подскажите где неверно?
    суть задачи сравнить длину переменной и выполнить условие в замисимости от ее длины
    в файле несколько значений %%d а проходит только первое остальные не сравнивает..
    внутри файла
    06.09.2008;03:36:08;000004;;xxxxxxxxxxxxxxxxxxx;yyyyyy/yyyyyyyyy;;xxxx;;;xxx;xxxx
    таких строк несколько.
    парметр %%d выделен.  
     

    Цитата:
    @echo off  
    setlocal enabledelayedexpansion  
    for /f "skip=1 tokens=1-8 delims=;" %%a in (%%j) do (set x=%%d  
    :1  
    set /a cnt+=1  
    if not "!x:~%cnt%,1!"=="" goto:1  
    if "%cnt%"=="20" (  
        echo %%a;%%b;%%c;%%d;;;;%%f;;%%e;%%g;%%h>> 1.tmp  
        ) else (  
        echo %%a;%%b;%%c;;%%d;;;%%f;;%%e;%%g;%%h>> 1.tmp  
    )  
    )
     
     

    Всего записей: 81 | Зарегистр. 09-09-2008 | Отправлено: 11:21 14-10-2008
    Joolz

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    avkorets
    Может после окончания цикла стоит сбрасывать %cnt% в ноль?

    Всего записей: 100 | Зарегистр. 24-01-2008 | Отправлено: 16:12 14-10-2008
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    XFoxM
    robocopy с ключом /move, лучше не придумаешь
     
    Elroir
    заче выполнять два действия, если можно одно?
     
     
    господа, давайте уже примем, что для папок всё-таки robocopy идеальна, зачем юзать циклы и обрезанную xcopy?

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 20:55 14-10-2008
    Karrakurt

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Признаюсь честно, топик весь не смотрел... Юзал только 1-ую и 2-ую ветки, на последние не хватило...
     
    Вопрос вот в чем: можно ли в один файл экспортировать(REG EXPORT ? ) несколько конкретных ключей реестра из разных мест?
    И еще: можно ли проверить ключ на существование не тем способом как это делал я:

    Код:
    REG QUERY HKCU\Console\%%SystemRoot%%_system32_cmd.exe
    IF NOT ERRORLEVEL 1 GOTO ConsOK

    а так, чтобы попроще и без сообщений?
    Спасибо

    Всего записей: 17 | Зарегистр. 29-07-2008 | Отправлено: 20:56 14-10-2008
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    tigran_astranet
    весь код необязательно было приводить
    там, где нужно, вставь код
    echo КЛАВИША|команда
     
    Добавлено:
    Karrakurt
    юзай >>
    стандартными средствами проще врят ли

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 21:00 14-10-2008
    Karrakurt

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

    Цитата:
    Karrakurt  
    юзай >>
     
    стандартными средствами проще врят ли

    Ну, я только знаю о существовании этого >> оператора, а как им пользоваться, пока опыта мало...
    Т.е. получается нужно не экспортировать ключ, а проверить на существование?
    Потом результат присвоить некой переменной, а уж потом переменную записать в файл? Так что-ли? Тогда какой синтаксис?
     

    Код:
    За синтаксис сразу извиняюсь...
    SET regKey=REG QUERY "ROOT\someFolder\some another folder\key"
    ECHO %regKey% >> sometextfile.log

    А если я хочу чтобы эти экспортированные ключи можно было вернуть в реестр, нужно будет еще и форматировать как-то на понятный для REGEDIT.EXE язык...
    Это все реально стандартными средствами?

    Всего записей: 17 | Зарегистр. 29-07-2008 | Отправлено: 21:44 14-10-2008 | Исправлено: Karrakurt, 21:50 14-10-2008
    Nagual



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

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 21:56 14-10-2008
    ixtiandr9898

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите! в ключаю комп пишется что типа слитела винда я вытаскиваю батарейку и потом вставляю на место включаю комп всё винда грузится! но когда перезагружаеш комп опять ьтакая ерунда! ЧТО ДЕЛАТЬ ПОМОГИТЕ?

    Всего записей: 1 | Зарегистр. 14-10-2008 | Отправлено: 22:10 14-10-2008
    Karrakurt

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    2 Nagual:
    Да я верю, почему нет... Просто был тут давно, в архиве на ЖД есть ветки 1 и 2, там это мало обсуждалось. Сейсас скачал остальные ветки, буду штудировать...
    Цель такая, перед удалением некоего ключа батником, я хочу его на всякий случай экспортировать. И желательно, чтоб все экспортированные ключи были в одном файле и при необходимости я мог бы восстановить их из него. Все это желательно проделывать без доп. средств. Ось ВинХП.
    Спасибо за то, что откликнулись.

    Всего записей: 17 | Зарегистр. 29-07-2008 | Отправлено: 22:12 14-10-2008
    VitRom

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Видел ли кто примочку для сортировки XML, на уровне именно xml-блоков, а не строк?
    А то нужно пересортировать файл с несколькими уровнями вложенных тегов по значению Date на одном из первых уровней...
     
    Добавлено:
    ЗЫ. Да и для "прямого редактирования" (вроде chgstr или sed) не помешает

    Всего записей: 2967 | Зарегистр. 18-06-2006 | Отправлено: 23:09 14-10-2008
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ixtiandr9898
    надо менять прокладку между креслом и монитором
    а если серьёзно, то ты малость ошибся темой
     
    Karrakurt
    как мне кажется, с твоим уровнем проще было бы юзать regseeker или какой-нибудь аналог
     
    если религия индейцев племени яки не позволяет, то внимательно изучай reg/? и
     
    REG QUERY /?
    REG ADD /?
    REG DELETE /?
    REG COPY /?
    REG SAVE /?
    REG RESTORE /?
    REG LOAD /?
    REG UNLOAD /?
    REG COMPARE /?
    REG EXPORT /?
    REG IMPORT /?

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 23:18 14-10-2008
    Elroir



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

    Цитата:
    заче выполнять два действия, если можно одно?

    Конечно, с robocopy легче.
    Но согласись, что не на много. А команды, в отличие от robocopy, встроенные


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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 00:30 15-10-2008
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir
    ну мы опять о религии, да, я согласен, что можно выполнить заданную задачу не только утилитой xcopy, но и командой copy, move и даже replace в купе с циклами, однако сколько это займёт времени и системных ресурсов, думаю, здесь намного важнее, не говоря уже о функционале
    взять хотя бы для примера один из самых юзабельных ключей robocopy /mir
    аналогов этому ключу по скорости и фукнкционалу я до сих пор здесь не видел, хотя были попытки изврата, но такого результата, как предоставляет нам этот ключ так достигнуть никому из участников форума не удалось
    для примера можно взять папку дистрибутивов весом так гектаров в 50 с огромной вложенностью и просто потестить

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 01:02 15-10-2008
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Nagual
    Я же не возражаю .
    И дело тут не в религии, а в том, что многим нужны батники на работе. А на рабочем компе/ах не всегда возможно использовать сторонние утилиты.

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 01:52 15-10-2008 | Исправлено: Elroir, 01:53 15-10-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.Board
    © Ru.Board 2000-2020

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru