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

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

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

KLASS (06-03-2018 00:44): Объединение тем по сценариям: Сценарии Windows
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

hErAx

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

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

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

  • Отправлено: 01:53 25-10-2015 | Исправлено: Paromshick, 21:51 18-12-2017
    YuS_two



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

    Цитата:
    И где в процитированном вы нашли вступление в дискуссию?


    Цитата:
    А теперь оказывается, что надо еще и показать ее значение.


    Цитата:
    Ну так а мною подразумевается, что у любого стоящего приема должен быть смысл применимости.

     
    В таком ключе вести разговор мне поднадоело... занимайтесь самолюбованием в одиночестве, плиз

    Всего записей: 399 | Зарегистр. 28-03-2016 | Отправлено: 15:33 12-09-2016
    GCRaistlin



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

    Цитата:
    В таком ключе вести разговор мне поднадоело... занимайтесь самолюбованием в одиночестве, плиз


    Цитата:
    роспись в собственном бессилии перед поставленной задачей


    ----------
    Magically yours
    Raistlin

    Всего записей: 3961 | Зарегистр. 18-04-2005 | Отправлено: 15:42 12-09-2016
    Linksach



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Раз был разговор про переменные ,тогда у меня вопрос такого плана.Есть две программки.Одна -это батник,скомпилированый в exe,другая это-текстовый файл.Одна без другой работать не может,точнее первая без второй.Т.е батник,скомпилированный в exe берёт данные из текстового файла и выводит эту инфу в окне cmd что в текст файле и потом выполняет определённую задачу.
    Есть такой код:

    Код:
     
     @echo off  
     setlocal  
     echo Enter a num of program that need to launch.  
     echo 1 - EmEditor.exe
     echo 2 - WinRar.exe
     echo 3 - FreeArc.exe  
     echo 4 - Up1.exe
     echo 5 - AP_list.txt
     set /p act=""  
     if /i %act% equ 1 goto:first  
     if /i %act% equ 2 goto:second  
     if /i %act% equ 3 goto:third  
     if /i %act% equ 4 goto:fourth
     if /i %act% equ 5 goto:fifth
    :first  
      EmEditor.exe  
      goto:eof  
     :second  
      WinRar.exe  
      goto:eof  
     :third  
      FreeArc.exe
     :fourth
      Up1.exe
      goto:eof
     :fifth
      AP_list.txt
      goto:eof
     endlocal  
     exit /b

    Это код запуска нужной программы на выбор через cmd
    Все пути к программкам я добавил в переменную среды path.
    EmEditor.exe ,  WinRar.exe ,FreeArc.exe- работают из cmd без проблем,эти программы никакого дела к задаче не имеют,я их просто дал для примера что они работают из cmd
    А вот Up1.exe не запускается из cmd и  через этот код запускаться не хочет, так как не находит AP_list.txt,хотя как показывает лежат в одной папке на диске D:\Transcend\1.Такой путь указан и в переменной среды path.Указал и ещё такие пути:
    D:\Transcend\1\Up1 и D:\Transcend\1\AP_list и D:\Transcend\1\AP_list.txt.При запуске Up1 пишет что не удаётся найти файл AP_list.txt.  Может как-то можно сделать привязку программ одна к другой чтоб они запускались из cmd через этот код.Или как-то нужно правильно указать путь к текстовому файлу.Может я это не правильно сделал.Я в первый раз это делал
    Да,видимо надо сказать что если я запускаю Up1.exe и  AP_list.txt не через cmd - а из папки,где они лежат рядом- всё прекрасно работает-батник,скомпилированый в exe считывает данные из текстового файла.А мне нужно запустить эту программу Up1.exe через cmd и этот код который выводит окно cmd с выбором запуска нужной программы.Надеюсь всё объяснил доходчиво.Заранее Благодарю за помощь,сам развязать задачу не в силах!
    Файл AP_list.txt запускается из cmd без указания пути,так как путь указан в переменной среды path

    Всего записей: 113 | Зарегистр. 11-07-2015 | Отправлено: 18:59 12-09-2016 | Исправлено: Linksach, 19:53 12-09-2016
    Jon_Dow

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Linksach
    В начало скомпилированного скрипта добавь
    Код:
    ECHO "%CD%"
    pause
    для отладки и глянь какая текущая папка при таком запуске. Если скомпилировано в "hidden" режиме то поставь перенаправление в файл и без паузы.

    ----------
    Я такую личшную нэприязнь испитываю к яндексгуглкасперский, что кушать не могу.:abuse: @Billon

    Всего записей: 732 | Зарегистр. 25-11-2006 | Отправлено: 20:10 12-09-2016
    Linksach



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Jon_Dow
     
    Так работает.Благодарю!
    Я вас прекрасно понял-надо было просто положить батник с этим кодом в папку где лежат Up1.exe и AP_list.txt
     
    А так сделать чтоб батник лежал например на рабочем столе а Up1.exe и AP_list.txt там где сейчас лежат ,т.е в другом месте -нельзя?
     
    Всё догадался-надо было создать ярлык и поместить на рабочий стол!!!

    Всего записей: 113 | Зарегистр. 11-07-2015 | Отправлено: 20:21 12-09-2016 | Исправлено: Linksach, 20:26 12-09-2016
    Jon_Dow

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Linksach
    ну собственно к тому и шло, но я имел виду все-таки то, что в начале надо глянуть текущий путь, а там уже будет видно... А так в том же QBFC или ExeScript можно ресурсные файлы вкомпилить вместе со сценарием в одно тело.
    Это бывает важно при запуске с UNC-пути(по сети без смонтированного дискка).

    ----------
    Я такую личшную нэприязнь испитываю к яндексгуглкасперский, что кушать не могу.:abuse: @Billon

    Всего записей: 732 | Зарегистр. 25-11-2006 | Отправлено: 20:31 12-09-2016
    Linksach



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

    Цитата:
    но я имел виду все-таки то, что в начале надо глянуть текущий путь, а там уже будет видно...

    ПУТИ не совпадали если надо вам это знать.Сейчас это уже на важно
     
    А можно ли как-то эту программу назовём её Vybor.bat( я ЕЁ конечно скомпилирую обязательно в exe) запускать в скрытом режиме ,т.е чтобы её не было видно на рабочем столе,а нажал например на определённую клавишу и запустил
    Нужно как-то наверное привязать к клавише.Если можно напишите код .Сам я пока не сделаю такое

    Всего записей: 113 | Зарегистр. 11-07-2015 | Отправлено: 20:34 12-09-2016 | Исправлено: Linksach, 20:41 12-09-2016
    Jon_Dow

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Linksach
    без сторонних средств максимум что ты можешь сделать это запускать элемент видимый с рабего стола(ярлык рабочего стола или одной из панелей задач) через "Быстрый вызов" - там назначаются клавиши вида CTRL+ALT+<key>
    А в общей ситуации надо подбирать резидентный ланчер с добавочной настройкой сочетаний клавиш.
    А по поводу "hidden" я имел в виду что скрипт можно скомпилировать для запуска без отображения окна консоли...

    ----------
    Я такую личшную нэприязнь испитываю к яндексгуглкасперский, что кушать не могу.:abuse: @Billon

    Всего записей: 732 | Зарегистр. 25-11-2006 | Отправлено: 22:03 12-09-2016
    Linksach



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Jon_Dow
     
    а какие сторонние средства могут быть-речь о дополнительных программах
     
     

    Цитата:
    А по поводу "hidden" я имел в виду что скрипт можно скомпилировать для запуска без отображения окна консоли...

     
    Без отображения окна консоли-это vbs-скрипт должен быть вроде бы
     

    Всего записей: 113 | Зарегистр. 11-07-2015 | Отправлено: 22:34 12-09-2016 | Исправлено: Linksach, 23:09 12-09-2016
    Jon_Dow

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Linksach
    ну не знаю даже - что-то типа MKey. Я сам такой софт не применяю - поэтому не подскажу.

    Цитата:
    Без отображения окна консоли-это vbs-скрипт должен быть вроде бы
    можно и так, но если уже все расно применяется компилер скрипта в exe то можно(как минимум на QBFC и ExeScript) в параметрах компиляции указать скрытый режим.  


    ----------
    Я такую личшную нэприязнь испитываю к яндексгуглкасперский, что кушать не могу.:abuse: @Billon

    Всего записей: 732 | Зарегистр. 25-11-2006 | Отправлено: 23:04 12-09-2016
    Linksach



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

    Цитата:
    можно и так, но если уже все расно применяется компилер скрипта в exe то можно(как минимум на QBFC и ExeScript) в параметрах компиляции указать скрытый режим

     
    Да и мне наоборот надо чтобы было окно.В нём батник должен произвести определённые действия,и я должен не только это видеть но и участвовать в этом.Мне наоборот нужно скрыть от посторонних глаз не окно cmd,а сам батник или батник,скомпилированный в exe(т.е уже получается файл exe).Если удасться скрыть сам батник тогда и не надо будет и компилировать в exe
     
    Добавлено:
    Jon_Dow
     
    Не знаю,нашёл в инете какую-то прогу.Называется S-Tools .Буду разбираться,ведь это уже тема не о батниках

    Всего записей: 113 | Зарегистр. 11-07-2015 | Отправлено: 23:10 12-09-2016 | Исправлено: Linksach, 23:11 12-09-2016
    king_stiven

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

    Цитата:
    нужно скрыть от посторонних глаз не окно cmd,а сам батни

    Сам батник, как файл, скрыть не получится. Он будет создаваться в папке %temp%, и удалится только по окончания его работы.
     

    Цитата:
    батник,скомпилированный в exe(т.е уже получается файл exe

    Присвоить ему атрибут скрытый? Переименовать расширение .exe в .txt? Прибавить ему пару байтов в конце и перед запуском отрезать? Это уже что-то из хакерства, не сталкивался.

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 23:37 12-09-2016 | Исправлено: king_stiven, 23:41 12-09-2016
    Linksach



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

    Цитата:
    Сам батник, как файл, скрыть не получится. Он будет создаваться в папке %temp%, и удалится только по окончания его работы

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

    Всего записей: 113 | Зарегистр. 11-07-2015 | Отправлено: 00:06 13-09-2016
    king_stiven

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

    Цитата:
    главное чтоб его не было видно на рабочем столе

    Ярлык создавать необязательно на рабочем столе, создай в другом месте, в свойствах ярлыка пропиши горячие клавиши, вот и всё.

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 00:19 13-09-2016
    Linksach



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    king_stiven
     
    Как это сделать-у меня не редактируется колонка Быстрый вызов
     
    Всё-разобрался вроде!Попробую что получится
     
    Создал ярлык в папке не на рабочем столе ,прописал горячую клавишу.Но с той папки не запускается,
     
    Получилось только в меню ПУСК(как пишут в инете) создать папку и туда кинуть ярлык с назначенной клавишей.Благодарю-это то что мне и надо было!

    Всего записей: 113 | Зарегистр. 11-07-2015 | Отправлено: 06:50 13-09-2016 | Исправлено: Linksach, 07:38 13-09-2016
    Linksach



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как перенести файлы с папок  такого типа
     
    в папки такого типа
     
    Т.е все файлы что в папке aipdlog4 должны быть перемещены в папку aipdlog4 ;
     из папки ChangeIP-нет в папку ChangeIP-нет ;  и.т.д  
    Затем папки типа aipdlog4,ChangeIP-нет нужно удалить,т.е удалить те папки из которых происходило перемещение
    Благодарю за помощь

    Всего записей: 113 | Зарегистр. 11-07-2015 | Отправлено: 19:15 19-09-2016 | Исправлено: Linksach, 19:18 19-09-2016
    Sphinx114



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

    Код:
    for /d %%i in (*) do ren "%%~i" "%%~i ;"

    Всего записей: 1201 | Зарегистр. 26-03-2011 | Отправлено: 19:33 19-09-2016
    Linksach



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Sphinx114
     
    Я блин морочился Как создать текстовый файл со списком названий папок,затем Как добавить символ в конец каждой строки текстового файла,затем -Создание папок с именами, взятыми из списка в текстовом файле.Осталось найти перемещение ,а тут так всё просто! Решение супер!конечно лучше переименовать папки.Искал решение в инете и не находил-а тут проще паренной репы!Благодарю

    Всего записей: 113 | Зарегистр. 11-07-2015 | Отправлено: 19:43 19-09-2016 | Исправлено: Linksach, 19:46 19-09-2016
    GCRaistlin



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Обнаружил, что несколько %random% в пределах одной строки раскрываются каждый раз заново:

    Код:
     
    echo %random% %random%
     

    Кроме FOR - там дело обстоит немного по-другому:

    Код:
     
    for /l %%A in (1,1,2) do echo %random% %random%
     


    ----------
    Magically yours
    Raistlin

    Всего записей: 3961 | Зарегистр. 18-04-2005 | Отправлено: 19:46 19-09-2016
    Linksach



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

    Всего записей: 113 | Зарегистр. 11-07-2015 | Отправлено: 19:53 19-09-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 70 71 72 73 74 75 76 77 78 79 80 81 82 83

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 12
    KLASS (06-03-2018 00:44): Объединение тем по сценариям: Сценарии Windows


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru