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

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

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

    Всего записей: 3412 | Зарегистр. 29-03-2016 | Отправлено: 21:05 29-11-2017
    thejustsoul



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    bomzz
    Попробуйте этим синхронизировать, у меня давно стоит, как говориться, настроил и забыл. Кушает 1-2мб памяти.
     
    Добавлено:
     
    sherba800
    <тут был код, но он нестабилен-) убрал>
    Кстати, ваш пример (2), если запускать с параметрами то права не повышаются и запускается как есть.

    Всего записей: 1789 | Зарегистр. 30-03-2014 | Отправлено: 06:59 30-11-2017 | Исправлено: thejustsoul, 08:30 30-11-2017
    GreG



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    помогите пожалуйста с батником
    есть rar архив, нужно извлечь из него файл (имя файла "76 текст.txt") и переименовать извлеченный файл переименовать в  "76 другой текст.txt"
    спасибо заранее

    Всего записей: 1149 | Зарегистр. 22-10-2001 | Отправлено: 09:40 30-11-2017
    Inoz2000



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    GreG
    вот, вродеб похожий случай  -->

    ----------
    Мы все умрём. (-:

    Всего записей: 4900 | Зарегистр. 23-04-2009 | Отправлено: 10:13 30-11-2017
    GreG



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

    Цитата:
    вот, вродеб похожий случай  -->  [?

     
    спасибо, почти то, но нужно чтоб  при переименовании оставалась часть  имени которая содержит цифры (всегда разные)

    Всего записей: 1149 | Зарегистр. 22-10-2001 | Отправлено: 12:52 30-11-2017
    Inoz2000



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    не совсем ясно представляю, что к чему
    @echo off
    SET file=Folder1\Folder2\76 текст.txt
    for /f "delims=" %%t in ("%file%") do (
    for /f %%d in ("%%~nt") do rar p -ierr your_file.rar "%%~t"^>"%%d другой текст%%~xt"
    )
     
     — это исходя из предложенного ранее варианта.

    ----------
    Мы все умрём. (-:

    Всего записей: 4900 | Зарегистр. 23-04-2009 | Отправлено: 13:19 30-11-2017
    YuS_2



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

    Цитата:
    если запускать с параметрами то права не повышаются и запускается как есть.

    А чем не подходит вариант, предложенный Pasha_ZZZ?
    Когда-то был написан примерно такой вот код:

    Код:
    @echo off
    rem Пакетник с элевацией прав и возможностью ввода параметров для основной программы
    rem Тестовый запуск: <run.bat> или <%full_path%\run.bat  1 "2 3" "3" 4 5.1>
    >nul 2>&1 net session&&goto run
    if /i "%~1"=="yes" goto run
    if /i "%~1"=="" set "args=noparam"
    set "file=%~f0"
    set "args=%* %args%"
    set file=""%file:"=%""
    set args=%args:"=""%
    >"%temp%\uac.vbs" echo set objShell=CreateObject^("Shell.Application"^)
    >> "%temp%\uac.vbs" echo objShell.ShellExecute "cmd", "/c ""%file% ""yes"" %args%""", , "runas", 1
    cscript /nologo /e:vbscript "%temp%\uac.vbs"
    exit /b
     
    :run
    >nul 2>&1 del "%temp%\uac.vbs"
    cd /d "%~dp0"
    title %cd%
    shift
    if "%~1"=="noparam" shift
     
    rem Тестовый блок проверки параметров [в боевых условиях блок можно уничтожить]
    echo.param_full=[%*]     - [test_param %%*]
    echo.param_1=[%1]             - [test_param %%1]
    echo.param_2=[%2]             - [test_param %%2]
    echo.param_3=[%3]             - [test_param %%3]
    echo.param_4=[%4]             - [test_param %%4]
    echo.param_5=[%5]             - [test_param %%5]
    rem ... и т.д.
    rem Конец тестового блока
     
    rem Место для основной программы. Текущий каталог = каталог запуска сценария.
     
    echo Successfull! UAC unlock. Demo - this line remove...
    pause

    - помогает во всех случаях, где требуется элевация прав.

    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 13:26 30-11-2017
    GreG



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

    Цитата:
    не совсем ясно представляю, что к чему
    @echo off
    SET file=Folder1\Folder2\76 текст.txt
    for /f "delims=" %%t in ("%file%") do (
    for /f %%d in ("%%~nt") do rar p -ierr your_file.rar "%%~t"^>"%%d другой текст%%~xt"
    )
     
     — это исходя из предложенного ранее варианта.

     
    не работает(( может я не так объяснил что нужно
    в rar архиве есть файл 20171111 работа.txt нужно его извлечь в эту же папку и переименовать в 20171111 - задание.txt

    Всего записей: 1149 | Зарегистр. 22-10-2001 | Отправлено: 22:48 30-11-2017
    Inoz2000



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Какая жаль((
    Из таких “объяснений” чуть-чуть нифига не ясно, что вы подразумеваете под словами
    Цитата:
    не работает((


    ----------
    Мы все умрём. (-:

    Всего записей: 4900 | Зарегистр. 23-04-2009 | Отправлено: 23:01 30-11-2017
    GreG



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

    Цитата:
     
    D:\Desktop>mail
     
    RAR 5.21   Copyright (c) 1993-2015 Alexander Roshal   15 Feb 2015
    Trial version             Type RAR -? for help
     
    Extracting from 65165165 nsdjfng.rar
     
    No files to extract
     

    так понятнее может будет?

    Всего записей: 1149 | Зарегистр. 22-10-2001 | Отправлено: 23:27 30-11-2017
    Inoz2000



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Попробую угадать по одному слову mail … … может быть кирилица не в той кодировке.. ..

    ----------
    Мы все умрём. (-:

    Всего записей: 4900 | Зарегистр. 23-04-2009 | Отправлено: 00:01 01-12-2017
    GreG



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Inoz2000
    все может быть.. mail это имя запускаемого батника, кирилицы там нет совсем

    Всего записей: 1149 | Зарегистр. 22-10-2001 | Отправлено: 00:17 01-12-2017
    Inoz2000



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

    Цитата:
    есть файл 20171111 работа.txt нужно его извлечь в эту же папку и переименовать в 20171111 - задание.txt
    я видимо ошибочно предположил, что проблемой может быть неверная кодировка батника, который написан для извлечения и переименования файла с кирилическими символами в составе имени. А оказывается
    Цитата:
    кирилицы там нет совсем
    На сегодня с меня хватит.

    ----------
    Мы все умрём. (-:

    Всего записей: 4900 | Зарегистр. 23-04-2009 | Отправлено: 00:38 01-12-2017
    thejustsoul



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    YuS_2
    Попробуйте батник сохранить с пробелом в имени и запустить из каталога где есть пробелы..
    И в вашем батнике не хватает setlocal, иначе попробуйте запустить из одной консоли этот батник пару раз (вывод будет увеличиваться с каждым запуском).
     
    Утром думал как экранировать кавычки которые надо передать ("сохранить") в vbs, нашел в вашем примере как это сделать, спасибо.
    (с использованием vbs, написал несколько разных вариантов, пока не определился который оставить один, а остальные удалить-)), вот например один из рабочих:
     

    Код:
    @echo off
    setlocal enableextensions
    net session >nul 2>&1 && goto start
    set "args=%* %args%"
    set args=%args:"=""%
    echo CreateObject^("Shell.Application"^).ShellExecute "%comspec%", "/c ""%~s0 %args%""", "", "runas", 1 >"%temp%\elevate.vbs"
    cscript //Nologo //E:vbscript "%temp%\elevate.vbs"
    del /f /q "%temp%\elevate.vbs" >nul 2>&1
    goto :eof
     
    :start
    pushd "%~dp0"
    rem -----YOUR CODE BELOW-----
     
    echo.|set /p=Hello & whoami
    echo.%*
    pause
     
    rem -----YOUR CODE ABOVE-----
    popd
    exit /b

     
    Работает из папки где содержаться пробелы в пути и\или имени батника. Параметры передает "как есть".
    Запуск с сетевых дисков не проверял, но наверно если дописать pushd "%~dp0" после :start и в конец popd, то проблем не будет. Хз надо ли добавлять pushd в самое начало, но вроде и так работает. upd: дописал в код выше
    З.Ы. да, я заморочился на этих мелочах =)

    Всего записей: 1789 | Зарегистр. 30-03-2014 | Отправлено: 00:57 01-12-2017 | Исправлено: thejustsoul, 01:56 01-12-2017
    YuS_2



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

    Цитата:
    Попробуйте батник сохранить с пробелом в имени и запустить из каталога где есть пробелы..

    А что не так?


     

    Цитата:
    в вашем батнике не хватает setlocal, иначе попробуйте запустить из одной консоли этот батник пару раз

    Это да, запускаю их не из консоли. Но это ведь легко исправляется локализацией переменных (setlocal)... это не проблема совсем.
     
    ЗЫ А вообще, лучше не писать универсальные портянки, лучше под задачу код создавать, править или из готовых заимствовать то, что требуется, а затем оптимизировать... имхо.

    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 10:13 01-12-2017
    qw12



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

    Код:
    Описание: Устройство с поддержкой High Definition Audio
    ИД оборудования: HDAUDIO\FUNC_01&VEN_10EC&DEV_0887&SUBSYS_1462D850&REV_1003
    Служба: HdAudAddService

     
    То надо изменить на:

    Код:
    Описание: AMD High Definition Audio Device
    ИД оборудования: HDAUDIO\FUNC_01&VEN_1002&DEV_AA01&SUBSYS_00AA0100&REV_1003
    Служба: AtiHDAudioService

     
    Может, еще какие-то сведения нужны?

    Всего записей: 601 | Зарегистр. 04-06-2001 | Отправлено: 15:39 02-12-2017
    Pasha_ZZZ



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    qw12
    Цитата:
    nircmd.exe setdefaultsounddevice <имя_устройства>
    Имя устройства должно быть как в списке: "Динамики" или "SAMSUNG" например.

    Всего записей: 12396 | Зарегистр. 11-03-2002 | Отправлено: 15:51 02-12-2017
    qw12



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Еще раз прошу помощи. Нужен батник, для редактирования системной переменной %Path%, где содержится много разных данных, но интересует некоторые из них, это:

    Код:
    C:\Python35\
    C:\Python35\Scripts\
    C:\Python27\
    C:\Python27\Scripts\

    Что нужно сделать:
    Добавить, и соответственно, удалить другое, а также наоборот эти значения path - C:\Python35\;C:\Python35\Scripts\ и C:\Python27\;C:\Python27\Scripts\
    Как я представляю реализацию:
    При запуске батника появляется меню, где спрашивается, что нужно, и я выбираю - 1 или 2. Помогите реализовать. Спасибо.

    Всего записей: 601 | Зарегистр. 04-06-2001 | Отправлено: 23:35 06-12-2017
    BorlandIMHO

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    qw12
    Уточните - нужно изменить значение %PATH% в текущей консоли или в системе в целом? Это существенно разные задачи...
    Значение для консоли считывается с системного в момент запуска экземпляра и может произвольно меняться внутри экземпляра (при помощи set PATH= или команды path), никоим образом не влияя на значение для системы в целом и не завися от изменений системного значения. В т.ч. если изменения в общесистемное значение вносятся из этой консоли (командой setx).


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

    Всего записей: 2399 | Зарегистр. 12-10-2006 | Отправлено: 00:50 07-12-2017
    qw12



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BorlandIMHO
    Э-э-э-э... Наверно, в системе в целом.
    Лучше так отвечу.
     
     

    Всего записей: 601 | Зарегистр. 04-06-2001 | Отправлено: 01:34 07-12-2017
       

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