Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Задачи на bat-файлах 10

Автор: kostyamks
Дата сообщения: 28.01.2011 15:55
Rush
Free_Soft

Цитата:
Скорее всего файл помечен read only.
вставь перед правкой файла:
attrib -r %hostfile%
а после правки
attrib +r %hostfile%


Не помогло та же проблема.

Может есть какой то другой способ добавления инофмации в C:\Windows\System32\drivers\etc\hosts через bat команду.
Автор: Free_Soft
Дата сообщения: 28.01.2011 16:45
kostyamks
Учетная запись пользователя, из под которой запускается батник, админская? Все же подозреваю, что дело именно в административных правах.
Еще, как вариант, выберите в свойствах файла hosts вкладку "безопасность", и там задайте полные права на файл. После этого запустите bat

Добавлено:
Для автоматизации процесса можно использовать следующий код:

Код: @echo off
cls
if "%OS%"=="Windows_NT" ( set hostfile=%systemroot%\system32\drivers\etc\hosts ) else ( set hostfile=%systemroot%\hosts )
for /f "delims== skip=2 tokens=2 usebackq" %%i In (`wmic Group Where SID^="S-1-5-32-544" Get Name /Value`) do set Admins=%%i
takeown /f "%hostfile%" && icacls "%hostfile%" /grant %Admins%:F
1>>%hostfile% echo.
1>>%hostfile% echo.127.0.0.1 nero.com
1>>%hostfile% echo.127.0.0.1 my.nero.com
1>>%hostfile% echo.127.0.0.1 secure.nero.com
1>>%hostfile% echo.127.0.0.1 support.nero.com
1>>%hostfile% echo.127.0.0.1 registernero.com
ipconfig /flushdns
echo Overdone!
pause
Автор: wolf0425
Дата сообщения: 28.01.2011 17:40

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

А на висте/семерке - нужно не только запустить батник от имени пользователя, входящего в "администраторы" - но и при запуске cmd указать что он должен работать "от администратора", иначе доступа таки не дадут.
Автор: Free_Soft
Дата сообщения: 28.01.2011 18:05
ну я имел ввиду, что с помощью takeown и icacls на ХП не пройдет фокус

Добавлено:
хотя

Цитата:
даже "опытные пользователи" его не имеют.

этого не знал
Автор: Vladins
Дата сообщения: 28.01.2011 22:37
Для пакетной обработки avi файлов для каждого avi нужно создать avs файл с именем avi файла и с таким содержимым:
AviSource("имя файла.avi")
Loadplugin("001")
Loadplugin("002")
Loadplugin("003")

Я это делаю так:
for %%i in (*.avi) do (
echo AviSource("%%~ni.avi"^) LoadPlugin("001"^) LoadPlugin("002"^) LoadPlugin("003"^)^ >%%~ni.avs
)

Но все плагины выстраиваются в одну длинную строку и дописывать параметры в файл неудобно.
Как сделать чтобы в avs (читай txt - тоже самое) каждый плагин начинался с новой строки?

Автор: wolf0425
Дата сообщения: 29.01.2011 00:17
Vladins

Код: @echo off
for %%i in (*.avi) do 1>%%~ni.avs (
    echo AviSource("%%~ni.avi"^)
    echo LoadPlugin("001"^)
    echo LoadPlugin("002"^)
    echo LoadPlugin("003"^)
)
Автор: tails80486
Дата сообщения: 29.01.2011 11:43
Имеется папка с подпапками
Задача: удалить все файлы без расширения
PS Пробелы в названии файлов возможны
Автор: wolf0425
Дата сообщения: 29.01.2011 12:29
tails80486
for /f "delims=" %%a in (' dir /b /s /a-d * ') do if "%%~xa" equ "" echo del /q "%%~a"
Автор: tails80486
Дата сообщения: 29.01.2011 13:04
for /f "delims=" %%a in (' dir /b /s /a-d * ') do if "%%~xa" equ "" del /q "%%~a"

Не пойму зачем там echo было. В любом случае спасибо.
Автор: wolf0425
Дата сообщения: 29.01.2011 13:46

Цитата:
Не пойму зачем там echo было.
для тестирования работы кода, вестимо.
Собственно удалять - надо только тебе, только один раз и только в нужной директории, а перед надо бы убедиться что не удалится лишнего...
Автор: dmz2009
Дата сообщения: 29.01.2011 19:02
Господа, подскажите - возможно ли получить статус защиты антивируса Касперского (9-11 версий), особенно статус лицензии?
Автор: Jin32
Дата сообщения: 29.01.2011 23:56
Нужно порезать файл на куски по десять строк, файл такой:
CONS#1_066666.QR (часть названия CONS и расширение известны)

Код:
========== LAW66666.QR ==========
КонсультантПлюс: Версия Проф
Пользователь 66666

Запрос на регистрацию:
####################
#468-149-31-410-195#
#968-98-686-02-810 #
####################

========== FIN66666.QR ==========
КонсультантФинансист
Пользователь 66666

Запрос на регистрацию:
#####################
#153-645-840-842-807#
#250-766-77-410-892 #
#####################

========== EXP66666.QR ==========
КонсультантПлюс: Эксперт-приложение
Пользователь 66666

Запрос на регистрацию:
#####################
#196-354-504-633-852#
#964-267-56-180-094 #
#####################

========== MLAW66666.QR ==========
КонсультантПлюс: Москва Проф
Пользователь 66666

Запрос на регистрацию:
#####################
#190-845-512-982-580#
#329-586-33-609-897 #
#####################

.... еще куча таких блоков
Автор: king_stiven
Дата сообщения: 30.01.2011 02:25
Jin32
да можно, только спотыкаться может на знаках. утилиты лучше


Цитата:
qulinxao
в gnuwin32 coreutils есть split (хоть и не особо умная утилита, но по строкам делит), 30мег по кб не более 30 тыс. строк:
split -d -a 5 -l 30000 input.txt output_file_


или sed ом
Автор: Jin32
Дата сообщения: 30.01.2011 08:01
king_stiven
Утилиты использовать не желательно, ибо тогда ее за собой таскать придется. Давненько я уже пытался решить эту задачу с помощью какой то утилиты, может быть даже этой, не очень корректно работала, руские буквы превращала в абракадабру и имена файлов получались вида
========== LAW66666.QR ==========, я даже тогда готов был с этим смериться, обрезать хвосты у меня как то получилось, не помню уже как, а русский текст мне не важен, важны только цифры в рамках. Но на утилиту еще касперский ругался, почему то он решил что утилита пытается адреса из адресной книги выдергивать. и я решил что надо все таки как то стандартными средствами обойтись.
Автор: wolf0425
Дата сообщения: 30.01.2011 10:14
Jin32 как-то так:

Код: @echo off
setlocal enabledelayedexpansion
set _file=nul
for /f "tokens=1* delims=]" %%a in (' find /n /v "" ^<file ') do (
    set "_str=%%~b"
    if "!_str:~0,1!" equ "=" (
        for /f "tokens=2" %%f in ("%%~b") do set "_file=%%~f"
    ) else (1>>!_file! echo.%%~b)
)
Автор: Rush
Дата сообщения: 30.01.2011 11:35
Jin32
А у меня так вышло:

Код: @echo off
setlocal enabledelayedexpansion
set "file=cons*.qr"
for /f "tokens=*" %%a in ('find /v "" %file%') do (
set "line=%%a"
if "!line:~0,5!"=="=====" (set "fname=!line:~11,-11!" & echo.!line!>>!fname!) else (echo.!line!>>!fname!)
)
Автор: lorents
Дата сообщения: 30.01.2011 14:42
Добрый день!
Подскажите, пожалуйста как можно данный код сократить?

Код: if %png%==1 goto:1
if %png%==2 goto:1
if %png%==3 goto:1
if %png%==4 goto:1
if %png%==5 goto:1
if %png%==6 goto:2
if %png%==7 goto:2
if %png%==8 goto:2
Автор: 01MDM
Дата сообщения: 30.01.2011 14:52
lorents

Код:
for /l %%i in (1,1,5) do if %png%==%%i goto:1
for /l %%i in (6,1,8) do if %png%==%%i goto:2
Автор: lorents
Дата сообщения: 30.01.2011 14:53
01MDM
Спасибо
Автор: king_stiven
Дата сообщения: 30.01.2011 14:54
обрезать можно, главное не обрезать лишнего.
Автор: NIKZZZZ
Дата сообщения: 30.01.2011 15:02
lorents

Цитата:
Подскажите, пожалуйста как можно данный код сократить?


Код: Goto _%png%
.....
:_1
:_2
:_3
:_4
.....
:_5
:_6
:_7
:_8
.......
Автор: bomzzz
Дата сообщения: 30.01.2011 15:08
свой велосипедик поставлю

Цитата:

ECHO OFF
COLOR 9F
CLS
set png=6
set /a h=%png%/5+1
echo %h%
rem goto %h%
pause

идея понятна
Автор: 01MDM
Дата сообщения: 30.01.2011 15:49
Jin32

Цитата:
В конечных файлах все содержимое не важно, важны только цифры в рамке


Код:
@echo off
setlocal

for /f "tokens=1,2 delims=#=" %%i in ('type CONS#1_066666.QR') do call:split ".%%i"
goto:eof

:split

if %1==". " goto:eof

set "str=%~1"
set "str=%str:. =%"

if not "%str:~0,1%"=="." (

1>>%str% echo -----------------
    set file=%str%

) else (

    echo %str:.=% | 1>>%file% findstr /b "[0-9]"

)
Автор: aidarsimon
Дата сообщения: 30.01.2011 17:40
Здравствуйте. Нужно добавить параметры в реестр именно в текущее подключение по локальной сети.

HKLM\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\Interfaces\{fac2eb11-4f95-44a1-9aa7-76983519c896}

вот как получить идентификатор (fac2eb11-4f95-44a1-9aa7-76983519c896) текущего подключения, точнее адаптера., чтобы скрипт работал на разных машинах.
Автор: bomzzz
Дата сообщения: 30.01.2011 17:45
REG QUERY "HKLM\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\Interfaces\" /s

ето чтоб все параметры и подразделы распечатать. а тебе надо понять какое из этих подключений текущее?

Добавлено:
это наверно через вми надо делать
Автор: aidarsimon
Дата сообщения: 30.01.2011 18:24
bomzzz
надо в текущем подключении добавить два параметра. Главное узнать - какой текущий. Хотя у меня он один, неплохо было ба сделать универсальный скрипт, чтоб он создавал параметры в текущем локальном подключении
Автор: bomzzz
Дата сообщения: 30.01.2011 18:41
ну надо или через вми пытаться сделать или вообще на вбс скриптах. я так не знаю - гуглить надо. у меня в этом разделе пять подразделов, даже не знаю откуда столько набралось. когда эту винду ставил один сетевой адаптер я уже вытащил, сетевой адаптер + наверно встроенный тогда не был отключен, но без дров он вроде не должен был появится, + два модема, + сотовый телефон. как то так набралось наверно

Добавлено:
по реестру только по ип адресам можно различить, но кокое включина кокое отключина непонятно
Автор: aidarsimon
Дата сообщения: 30.01.2011 19:16
bomzzz
а по айпи можно проканать, например если начинается на 192.168..... не подскажешь, какое условие забить?
Автор: godzilka46
Дата сообщения: 30.01.2011 22:09
Добрый вечер, ребят помогите пожалуйста, нужен скриптик.

Нужно чтобы скрипт проверял \\путь\ВС в этой папке файлик errorlist там будет куча строк
и в некоторых будет такое предложение "Закончил обрабатывать курский " , где курский (название городов, и таких городов будет 90), и потом в другом файлике \\путь\отчет напротив этого города ставил "+" помогите чем можите плиз...
Автор: king_stiven
Дата сообщения: 30.01.2011 22:38
чётче сформулируй, чтоб голову ломать над задачей, а не над её условиями. С примерами

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071

Предыдущая тема: зависает установка Windows XP: 39 минут


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.