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

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



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Поправил пост, на который ссылка в шапке.
     
    YuS_2
    Спасибо. Зайти на борду и не поучиться жизни - считай что зря сходил.

    Всего записей: 1920 | Зарегистр. 12-04-2013 | Отправлено: 11:02 19-12-2017
    YuS_2



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

    Цитата:
    Зайти на борду и не поучиться жизни - считай что зря сходил.

    Талана, жизни учатся в жизни, а здесь так... поучения в некоторых дисциплинах, типа программирование, математика и т.п.

    Всего записей: 2025 | Зарегистр. 03-02-2009 | Отправлено: 11:23 19-12-2017
    alex52mail

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    На удаленном компе с Windows XP надо запустить от администратора, но требует пароль. Пустой пароль  не проходит.
    Там  ОДИН  пользователь, он же естественно и администратор, но  пароль НЕ задавался.  Задавать (новый) пароль только для запуска программы там не хотят.
    Там какая то не стандартная ХР сборка типа зверя, и нет  папки \Administrator,  а только  папка  \user (наверное при установки имя не задано).
    И через runas и через меню требует пароль.  
     
    Что делать в таком случае? Как запустить программу от администратора.  
    Или как запустить хотя бы  cmd от администратора в таком случае? Порылся в сети, но советы только как описал выше с runas .
     
    И может здесь просветят меня и в таком.
    Надо на этом удаленном 64бит компе установить 10ку.  Здесь на 32бит проце и 32бит системе проверил работу MediaCreationTool-Win10.exe, и переслал его им. Но там на 32бит Windows XP и 64бит проце прошлый раз не запустилась ругаясь что не работает на 32бит.   Перекачал там   MediaCreationTool-Win10.exe с сайта думая что скачивается под конкретный комп.  Но скачанная там  отказывается запускаться совсем, вероятно потому что не от администратора (как выясняю выше).
    Так в чем причина - не работает на 64 проце скачанная на 32 проце или другая причина.

    Всего записей: 333 | Зарегистр. 04-09-2015 | Отправлено: 23:15 20-12-2017 | Исправлено: alex52mail, 23:59 20-12-2017
    BorlandIMHO

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    alex52mail
    1. Оффтоп, ибо проблемы с запуском некой программы (к тому же - 100% GUI) на XP к топику о bat-файлах никакого отношения не имеют.
    2. При стандартной установке XP УЗ "Administrator" не используется нигде кроме как в "Режиме защиты от сбоев"; если пароль не задан - runas от его имени работать НЕ будет; пользовательская УЗ (в данном случае, похоже, "user"), созданная в процессе установки, обладает полными администраторскими правами (если НЕ предприняты специальные действия по урезанию этих самых прав), runas не требуется. Просто запускайте от того админа, под которым зашли в систему.
    3. Про разрядность: 64-бит программа на 32-бит винде не запустится, независимо от разрядности процессора. 32-бит программа вполне способна работать под 64-бит виндой, ЕСЛИ разработчик программы не решил иначе (т.е. встроил в программу соответствующую проверку и запрет).
    4. Запуск MediaCreationTool-Win10 на винде младше 7-ки невозможен. От слова "совсем". Все претензии - к мокрософту.

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

    Всего записей: 952 | Зарегистр. 12-10-2006 | Отправлено: 00:47 21-12-2017
    MihailM



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    На пред. странице был пример замены текста , а можно по подробней или проще , а тоже есть такая задача , нужно в манифесте заменить кусочек текста=точнее название файла ..  

    Всего записей: 1101 | Зарегистр. 19-10-2003 | Отправлено: 08:11 22-12-2017
    Start



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    MihailM
    Есть утилита inifile.exe, может она пригодится.
    Использование:
    inifile.exe file.ini [Имя секции] Имя параметра=Значение
    Если секции в файле нет, то она будет создана и будут добавлены: Имя параметра=Значение
    Значение параметра можно менять:
    inifile.exe file.ini [Имя секции] Имя параметра=Новое Значение
    file.ini может иметь любое имя и расширение.
     
    inifile.rar
    Размер архива 3,73 КБ (3 829 байт)
    MD5: E7F5FB3B8F9ADE513D61481F52157DFD
     
    Размер файла:
    inifile.exe
    8,50 КБ (8 704 байт)
    MD5: 2B417F8AD2E0627AF84D34A8E15DAF6C

    Всего записей: 522 | Зарегистр. 28-01-2006 | Отправлено: 09:26 22-12-2017 | Исправлено: Start, 09:33 22-12-2017
    sundraw

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

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


    Код:
     
    @echo off
    SetLocal EnableExtensions EnableDelayedExpansion
     
    Set infile=(путь к текстовому файлу исходнику)\file.txt
    Set outFile=(путь к текстовому файлу выходному)\fileout.txt
    Set find=какой отрывок текста изменить  
    Set replace=на что изменить
     
    for /F "UseBackQ delims=" %%n in ("%infile%") do (  
      set "LINE=%%n"
      echo=!LINE:%find%=%replace%!>>"%outFile%"
    )
     

    Весь уже заменённый текст записывается в fileout.txt

    Всего записей: 667 | Зарегистр. 15-05-2011 | Отправлено: 09:32 22-12-2017 | Исправлено: sundraw, 09:40 22-12-2017
    Start



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sundraw
    Возможно в XP не должно работать,
    в результате действий создаёт файл fileout.txt
    При этом копирует весь текст из файла file.txt (текст без изменений, целы даже пробелы в конце строк), но пустые строки удаляет и создаёт пустую строку после текста, которой в исходном файле нет. Строка, которая должна быть заменена осталась без изменений
     

    Всего записей: 522 | Зарегистр. 28-01-2006 | Отправлено: 09:51 22-12-2017
    MihailM



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

    Цитата:
    inifile.rar

    Спасибо , но если бы я спрашивал файл я это и сделал бы, в крайней случае "соорудил бы прожку на MS" )

    Цитата:
    Использование:inifile.exe file.ini [Имя секции] Имя параметра=Значение  

    Только нафиг мне это нужно , мне нужно по проще и короче что было , даже в виде файлов . Да и потом еще разбираться с ней .. Да ну нафиг .. Спасибо !!  Оставил , может когда нибудь пригодится .
     
    sundraw
    Спасибо , а то что то у вас там код слишком мудреный и большой с утра не понял, что к чему.  Взял на заметку .

    Всего записей: 1101 | Зарегистр. 19-10-2003 | Отправлено: 10:16 22-12-2017 | Исправлено: MihailM, 12:12 22-12-2017
    AlessTO

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте.
    Есть задача (возможно уже решалась) - обход каталога и подкаталогов в нем с поиском по маске файла и архивации в 7zip найденных файлов с тем же именем и в том же месте с удалением прошедших архивацию.
    По сути - замена найденного файла - его архивом.
    Спасибо.

    Всего записей: 253 | Зарегистр. 09-12-2006 | Отправлено: 17:37 22-12-2017
    metatrop

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

    Код:
     
    @echo off
    for /R %%F in (*.txt) DO echo 7z a -r- "%%~F.7z" "%%~F" && echo del "%%~F"
     


    Всего записей: 206 | Зарегистр. 17-09-2010 | Отправлено: 20:57 22-12-2017
    Tagg33

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите нейтрализовать некоторый функционал в док-коробочках и самих HDD.
    Современные HDD, и паркуются, и обороты снижают. Коробочки в свою очередь чудят, загоняют в Standby даже древние винты, под восьмеркой постоянно начинают дефрагментацию.  
    Кажется здесь решали задачу периодического чтения  или записи файла в корне диска.
    Не могу найти,  а может и потеряно все когда были проблемы с сайтом.

    Всего записей: 30 | Зарегистр. 04-10-2015 | Отправлено: 22:10 22-12-2017 | Исправлено: Tagg33, 22:12 22-12-2017
    Start



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, эти команды одинаковы в применении?
    Каким вариантом лучше пользоваться?
    (В XP работают оба варианта.)
     
    Местом работы батника является каталог в котором находится сам батник.
    Местом работы батника является подкаталог в каталоге нахождения батника.

    Код:
     
    :: Вариант 1
    cd /d %0\.. (Здесь нужны кавычки?... для  "%0\..")
    cd /d %0\..\"Подкаталог 1" (Правильно ли здесь стоят кавычки?)
    :: или так нужно:
    cd /d "%0\..\Подкаталог 1"
     
    :: или
    :: Вариант 2
    cd /d "%~dp0"
    cd /d %~dp0 (Если в пути нет пробелов, можно обойтись без кавычек?)
    cd /d "%~dp0\Подкаталог 1" (Правильно ли здесь стоят кавычки?)
    :: или так нужно:
    cd /d "%~dp0"\"Подкаталог 1"
     

    Всего записей: 522 | Зарегистр. 28-01-2006 | Отправлено: 00:22 23-12-2017 | Исправлено: Start, 00:41 23-12-2017
    metatrop

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Start
    Вот эти варианты наиболее корректные:
     
    cd /d "%~dp0"
    cd /d "%~dp0Подкаталог 1"
     
    Их можно использовать не только в команде cd (которая обладает особой "толерантностью" к избытку/недостатку кавычек).
     
    Что касается "толерантности" к нескольким слэшам подряд в маршрутах, то хотя она и прописана на уровне Windows API, однако печать названий в таком виде будет сбивать с толку, поэтому лучше формировать маршруты корректно.
     
    Надо учитывать, что "%~dp0" заканчивается слэшем, а у многих консольных программ комбинация \" рассматривается не как завершение аргумента командной строки, а как способ передать кавычку внутри аргумента. В таких случаях нужно передавать имя директории в виде "%~dp0." - чтобы оно не оканчивалось слэшем.

    Всего записей: 206 | Зарегистр. 17-09-2010 | Отправлено: 06:30 23-12-2017 | Исправлено: metatrop, 06:32 23-12-2017
    AlessTO

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте.
    Подскажите пожалуйста - есть каталог с подкаталогами разной степени вложенности. В некоторых есть архивы zip (с разными именами) - нужен батник, который позволит архиватору 7z, найти все указанные архивы и извлечь содержимое архива в каталог с обрабатываемым архивом - не создавая дополнительных папок (а-ля с именем архива).
    То есть - нашел архив и содержимое положил рядом с архивом.
    Zip потом требуется удалить.
    Спасибо.
     
    upd. нашел

    Всего записей: 253 | Зарегистр. 09-12-2006 | Отправлено: 08:07 23-12-2017 | Исправлено: AlessTO, 15:02 23-12-2017
    Start



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    metatrop
    Спасибо, проверил, работает великолепно.
    cd /d "%~dp0"
    cd /d "%~dp0Подкаталог 1"
    Теоретически возможен такой вариант?
    cd /d "%~dp0.\Подкаталог 1"
     
    Здесь есть описание использования этой команды, но есть предупреждение (по счёту второе сверху). Только там используется просто cd, а не cd /d, и в примерах судя по всему стоит ненужный слеш после %~dp0
     
    В справке по команде CD есть команда CD [..]
      ..  обозначает переход в родительский каталог.
    Но эта команда так не работает:
    cd /d ".."
    cd /d "..\Подкаталог 1"
    С ".." разобрался, переходит в каталог в котором находится каталог с батником (как-бы команда "Вверх"), а когда батник находится в корневом каталоге диска то "Выше" не поднимается потому что некуда.

    Всего записей: 522 | Зарегистр. 28-01-2006 | Отправлено: 08:39 23-12-2017 | Исправлено: Start, 09:09 23-12-2017
    metatrop

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Start
    Одна точка означает текущий каталог, поэтому её можно добавлять в маршруты по желанию, и cd /d "%~dp0.\Подкаталог 1" работает.
     
    cd /d ".." тоже работает, но не имеет никаких преимуществ перед cd ..

    Всего записей: 206 | Зарегистр. 17-09-2010 | Отправлено: 10:37 23-12-2017
    sundraw

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Не совсем в той ветке, но лучшей не нашёл.  SG TCP Optimizer выдал информацию по сетевым настройкам реестра в своём формате .SPG:

    Код:
     
    [netsh]
    TCP Window Auto-Tuning=3
    Congestion Control Provider=0
    TCP Chimney Offload=-1
    Receive-Side Scaling State=-1
    EnableDCA=1
    EnableTCPA=2
    ECN Capability=2
    Windows Scaling heuristics=2
    [SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
    DefaultTTL=64
    Tcp1323Opts=1
    DisableTaskOffload=0
    DisableTaskOffload_SEL=0
    ..........
     

    Нужно из него сделать REG или BAT-файл, с чем в основном разобрался: в REG-файле прописываю полный адрес ветки реестра, параметр беру в кавычки и вместо цифр после "=" ставлю "dword:00000000" с нужными цифрами в конце в 16-тиричном формате. Неясны два момента:
    1. Что означают цифры с минусами после знака "=" (TCP Chimney Offload=-1, бывает и -2), и как прописать их в REG-файле (или BAT-файле)
    2. Что означает знак _SEL (DisableTaskOffload_SEL=0....), после которого также бывают минусовые цифры -1, -2.
    Есть подозрение, что -1 - это удаление параметра, тогда зачем цифры -2
    P.S. Параметры с -2 здесь не указаны, но в процессе работы с оптимайзером появляются.

    Всего записей: 667 | Зарегистр. 15-05-2011 | Отправлено: 16:46 27-12-2017 | Исправлено: sundraw, 16:57 27-12-2017
    Pasha_ZZZ



    Gold Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    sundraw
    Применить и посмотреть, что в реестре - не вариант?

    Всего записей: 7095 | Зарегистр. 11-03-2002 | Отправлено: 16:57 27-12-2017
    sundraw

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pasha_ZZZ
    Да, делал так. Но именно параметры с минусовыми цифрами и _SEL не срабатывали. С остальными параметрами всё нормально. Также есть подозрение, что _SEL применяется для настроек сетевого адаптера, но нигде в инете не смог найти что-либо по SPG файлам. Да, ещё, -1 это удаление параметра, а удаление в регфайле прописывается как "=-". Осталось выяснить, почему появляются цифры -2 и откуда и как прописать _SEL. То есть нужна расшифровка значений в SPG-файле.

    Всего записей: 667 | Зарегистр. 15-05-2011 | Отправлено: 17:18 27-12-2017 | Исправлено: sundraw, 19:21 27-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.Board
    © Ru.Board 2000-2018

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru