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


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

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

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

Открыть новую тему     Написать ответ в эту тему

hErAx

Редактировать | Цитировать | Сообщить модератору
Задачи на bat-файлах 12
Предыдущие части: (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
Вопросы, задачи и их решения по работе с командными файлами, а также сопутствующие ссылки.

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

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

  • Отправлено: 01:53 25-10-2015 | Исправлено: Nagual, 18:44 04-06-2016
    YuS_2



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Inoz2000
    о чём спор? Вы бы лучше подсказали человеку, как воспользоваться советом в батнике именно, в смысле условный блок как нарисовать...
     

    Код:
    @echo off
    dir /b /ad "%~f1" 2>nul
    if errorlevel 1 (echo missing or file) else echo folder
    pause

    или

    Код:
    @echo off
    cd /d %1 2>nul
    if errorlevel 1 (echo missing or file) else echo folder
    pause

    как-то так...

    Всего записей: 1669 | Зарегистр. 03-02-2009 | Отправлено: 14:42 27-12-2015 | Исправлено: YuS_2, 15:07 27-12-2015
    nik4z



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

    Цитата:
    Почему же, команда dir для каталога выдаст файл не найден?  

     
    dir /b /a:-d будет искать только указанный файл, каталоги проигнорирует.
     

    Цитата:
    про то, что ~dpnx можно заменить на ~f, я уже молчу  

    Imxo, для меня ~dpnx просто повышает читаемость батника.
     

    Цитата:
    но и мой CD не хуже.

    Он рабочий, но портит %cd%, после теста нужно будет восстанавливать.
     
     
       

    Всего записей: 218 | Зарегистр. 08-11-2015 | Отправлено: 14:55 27-12-2015
    Sphinx114



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

    Код:
    if exist "%~1\" (echo folder) else echo file

     
    Добавлено:
    С UNC путями не работает. С твиком, разрешающим CD в UNC папку может и пойдёт...

    Всего записей: 1201 | Зарегистр. 26-03-2011 | Отправлено: 15:39 27-12-2015
    VitaminP



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

    Всего записей: 236 | Зарегистр. 28-08-2013 | Отправлено: 18:30 27-12-2015
    sundraw

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всех поздравляю с Новым Годом!

    Всего записей: 563 | Зарегистр. 15-05-2011 | Отправлено: 13:09 03-01-2016 | Исправлено: sundraw, 13:29 03-01-2016
    ssi



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    доброго времени суток уважаемые!
    прошу помощи в таком вопросе. Кратко: нужен батник, берущий из реестра путь и помещающий его в переменную:
     
    Начало такое
    set "reg_path=hkcu\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders"
    set "reg_param=Favorites"
     
    и вот тут должна следовать конструкция которая в переменную "reg_value" помещает содержимое ключа Favorites, то есть путь к Избранному

    Всего записей: 586 | Зарегистр. 19-11-2002 | Отправлено: 01:13 04-01-2016 | Исправлено: ssi, 01:18 04-01-2016
    Inoz2000



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Продолжение такое
    for /f "tokens=3" %%v in ('reg query "%reg_path%" /v "%reg_param%" ^| findstr REG_') do SET "reg_value=%%v"

    Всего записей: 1989 | Зарегистр. 23-04-2009 | Отправлено: 02:18 04-01-2016
    Jon_Dow

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Inoz2000
    при таком продолжении результат будет в данной ситуации "%USERPROFILE%\Favorites"
    А вот чтобы получить абсолютное значение придется чуток постараться:

    Всего записей: 719 | Зарегистр. 25-11-2006 | Отправлено: 12:36 04-01-2016
    hErAx

    Редактировать | Цитировать | Сообщить модератору
    del (исправлено в 12:52)

    Отправлено: 12:41 04-01-2016 | Исправлено: hErAx, 12:52 04-01-2016
    ssi



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

    Цитата:
    при таком продолжении результат будет в данной ситуации "%USERPROFILE%\Favorites"
    А вот чтобы получить абсолютное значение придется чуток постараться:

    да нет, работает все

    Всего записей: 586 | Зарегистр. 19-11-2002 | Отправлено: 23:04 04-01-2016
    Jon_Dow

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

    Всего записей: 719 | Зарегистр. 25-11-2006 | Отправлено: 00:40 05-01-2016
    ssi



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

    Всего записей: 586 | Зарегистр. 19-11-2002 | Отправлено: 00:38 06-01-2016
    Vanfear

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

    Всего записей: 554 | Зарегистр. 24-03-2010 | Отправлено: 06:35 07-01-2016
    Pasha_ZZZ



    Gold Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Vanfear
    Цитата:
    explorer <путь>

    Всего записей: 5551 | Зарегистр. 11-03-2002 | Отправлено: 08:43 07-01-2016
    Vanfear

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    а во как, ну я ещё способ через start нашёл.

    Всего записей: 554 | Зарегистр. 24-03-2010 | Отправлено: 23:58 08-01-2016
    grablin

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте!
    Написал бат файл.
    Логическая цепочка такова.
    1.
    Изменения в системном реестре.
    2.
    Запуск программы
    3.
    Закрытие программы и снова небольшая корректировка в системном реестре.
     
    Батник работает правильно, но если его конвертировать в .exe то не выполняются команды связанные с внесением изменений в реестре до и после запуска программы указанной в батнике.
    Что здесь не так? Что надо попрвить чтобы заставить ехе работать правильно?
     
    Вот содержимое батника
     

    Код:
    start "" Reg.exe add "HKLM\SOFTWARE\Classes\CLSID\{ECAB6A3D-5624-BF8B-F83D-6F4D7DADDD0D}" /v "CodeInfo" /t REG_SZ /d "{4C8BDC34-A832-A8F3-1249-B0003CF92577}" /f
    start /wait "" "C:\Program Files\DeskProto 6.0\Dp.exe" %1
    start /wait Reg.exe add "HKLM\SOFTWARE\Classes\CLSID\{ECAB6A3D-5624-BF8B-F83D-6F4D7DADDD0D}" /v "CodeInfo" /t REG_SZ /d "{4C8BDC34-A832-A8F3-1249-B0003CF92577}" /f

     

    Всего записей: 205 | Зарегистр. 25-04-2009 | Отправлено: 07:32 11-01-2016 | Исправлено: grablin, 07:41 11-01-2016
    5peciali5t



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

    Код:
     
    reg add "HKLM\SOFTWARE\Classes\CLSID\{ECAB6A3D-5624-BF8B-F83D-6F4D7DADDD0D}" /v "CodeInfo" /t REG_SZ /d "{4C8BDC34-A832-A8F3-1249-B0003CF92577}" /f
    start "" "C:\Program Files\DeskProto 6.0\Dp.exe" %1
    :: ping -n 5 -w 300 127.255.255.255>nul
    :: taskkill /f /im Dp.exe
    reg add "HKLM\SOFTWARE\Classes\CLSID\{ECAB6A3D-5624-BF8B-F83D-6F4D7DADDD0D}" /v "CodeInfo" /t REG_SZ /d "{4C8BDC34-A832-A8F3-1249-B0003CF92577}" /f  
     

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

    Всего записей: 1401 | Зарегистр. 17-07-2009 | Отправлено: 10:07 11-01-2016 | Исправлено: 5peciali5t, 10:12 11-01-2016
    grablin

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте,5peciali5t.
     
    Программа DeskProto 6.0 всегда будет закрываться вручную.
     
    Ваш батник не выполняет пункт  №3  
    Не добавляет в реестр данные  
     
     
     
    Добавлено:
    А если его сконвертировать в exe то все прекрасно работает!
    Но почему так?
    Спасибо вам огромное!!!
     
    Добавлено:
    Нет. ошибся. И в ехе пункт №3  не работает((
    Если убрать :: то программа запускается и самостоятельно выключается.

    Всего записей: 205 | Зарегистр. 25-04-2009 | Отправлено: 10:37 11-01-2016 | Исправлено: grablin, 11:20 11-01-2016
    5peciali5t



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    grablin
    а пп1 (идентичный пп3) выполняется?
    какая разрядность системы?
    не меняются ли значения в x64 ключе HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Classes\...
    сконвертированный в exe батник выполняется с правами администратора?
     
    ps если Вам нужно чтобы этот ключ всегда оставался с одним и тем же значением, возможно можно изменить права на изменение программами данной ветки реестра

    Всего записей: 1401 | Зарегистр. 17-07-2009 | Отправлено: 12:07 11-01-2016
    grablin

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    5peciali5t
    Пункты 1 и 3 единтичны.
    Запускал от имини администратора.
    На W8.1/32 exe в отснове которого лежат ваши команды - работает, но не выполняет пунк 3.
    На W8.1/64 exe вообще не выполняет команды.
     
    По разному игрался с  ping -n 5 -w 300 127.255.255.255  
    В итоге зафлудил сеть. Было 1300 процессов смд!! Я никогда такого не видел.
    После этог упал интернет. Я думал что оборудование (точка ваймакс на крыше) сгорело. Вызвал сегодня мастера он перенастроил его. Оказалось просто упали настройки .
     
    Сейчас я понял что Пунк 3 совсем не обязательно выполнять после завершеня процесса Dp.exe , оказалось так что программа вносит изменения в реестр сразу же после ее старта.
    Можно ли сделать так чтобы пунк 3 выполнялся через 3 секунды после старта Dp.exe?
     
    если в разрешениях запретить изменение в данном ключе реестра то Dp.exe не стартует вообще.

    Всего записей: 205 | Зарегистр. 25-04-2009 | Отправлено: 10:45 12-01-2016 | Исправлено: grablin, 10:55 12-01-2016
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Активные темы » Задачи на bat-файлах 12

    Имя:
    Пароль:
    Сообщение

    Для вставки имени, кликните на нем.

    Опции сообщенияДобавить свою подпись
    Подписаться на получение ответов по e-mail
    Добавить тему в личные закладки
    Разрешить смайлики?
    Запретить коды


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

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.Board
    © Ru.Board 2000-2017

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru