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

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

Автор: Rush
Дата сообщения: 11.02.2011 15:05
Kilyan
Если файл небольшой - сойдет и батником.

Код: @echo off

setlocal enabledelayedexpansion

set "FileName=1.txt"
set "FindLine=#define LEGAL_COPYRIGHT "LegalCopyright""

for /f "tokens=*" %%a in (%FileName%) do (
set "l=%%a"
if "!l!"=="%FindLine%" (
echo !l!>>%FileName%_
echo #define LEGAL_TRADEMARKS "LegalTrademarks">>%FileName%_
) else (
echo !l!>>%FileName%_
)
)
ren %FileName% %FileName:~0,-4%.bak
ren %FileName%_ %FileName%
Автор: Mark_Titov
Дата сообщения: 11.02.2011 16:25
Вопрос снят, спасибо...
Автор: king_stiven
Дата сообщения: 11.02.2011 17:24
Mark_Titov
сед осваивай потихоньку
Автор: Mark_Titov
Дата сообщения: 11.02.2011 17:26
king_stiven
Конечно буду...
Автор: Kilyan
Дата сообщения: 11.02.2011 18:51
Rush, Спасибки! Урра, заработало!


Автор: lorents
Дата сообщения: 13.02.2011 13:34
Добрый день!
Подскажите, пожалуйста, где я допусти ошибку?

Код: for %%a in ("%~dpn1-zs1.png") do set "size-1=%%~za"
for %%b in ("%~dpn1-zs0.png") do set "size-2=%%~zb"
set /a "size-3=!size-1!+!size-2!"
echo !size-3!
Автор: 01MDM
Дата сообщения: 13.02.2011 15:11
lorents
Проверь.

Код:
echo %~dpn1-zs1.png
Автор: lorents
Дата сообщения: 13.02.2011 16:11
01MDM
проверил, файлы batch видит

Он не может создать переменные size-1 и size-2
Автор: 01MDM
Дата сообщения: 13.02.2011 16:31
lorents

Цитата:
проверил, файлы batch видит

Что-то не понимаю: %~dpn1-zs1.png. Что файлы называются так?

Код:
-zs1.png
-zs0.png
Автор: lorents
Дата сообщения: 13.02.2011 16:41
01MDM

Код: @echo off

setlocal enabledelayedexpansion

set Docs="%~dp0Tools\"
PATH %Docs%;%PATH%

for /f "delims=" %%i in ('dir /b /s /a-d Images\*.png') do (
if %png%==3 call :Non-interlaced_Fast "%%~fi"
)

:Non-interlaced_Fast
truepng -i0 -zm9 -zs0 -fe -force "%~f1" -out "%~dpn1-zm9-zs0.png" >nul
truepng -i0 -zm8 -zs1 -fe -force "%~f1" -out "%~dpn1-zm8-zs1.png" >nul
for %%a in ("%~dpn1-zm9-zs0.png") do set size-1="%%~za"
for %%b in ("%~dpn1-zm8-zs1.png") do set size-2="%%~zb"
set /a "size-3=!size-1!+!size-2!"
echo !size-3!
exit /b
Автор: 01MDM
Дата сообщения: 13.02.2011 16:52
lorents
А откуда переменная %png% прилетела? Если из другого батника, который вызывает этот, то попробуй так:

Код:
@echo off

setlocal

set Docs="%~dp0Tools\"
PATH %Docs%;%PATH%

for /f "delims=" %%i in ('dir /b /s /a-d Images\*.png') do (
if %png%==3 call :Non-interlaced_Fast "%%~fi"
)
goto:eof

:Non-interlaced_Fast
truepng -i0 -zm9 -zs0 -fe -force %1 -out "%~dpn1-zm9-zs0.png" >nul
truepng -i0 -zm8 -zs1 -fe -force %1 -out "%~dpn1-zm8-zs1.png" >nul
for %%a in ("%~dpn1-zm9-zs0.png") do set "size-1=%%~za"
for %%b in ("%~dpn1-zm8-zs1.png") do set "size-2=%%~zb"
set /a "size-3=size-1+size-2"
echo %size-3%
Автор: lorents
Дата сообщения: 13.02.2011 17:33
01MDM
упс не заметил, это просто переменная, она задается в тоже bat.
Я так тоже пробовал, все равно не хочет работать, выдает:

Цитата:
Отсутствующий оператор.
Режим вывода команд на экран (ECHO) отключен.
Автор: 01MDM
Дата сообщения: 13.02.2011 19:00
lorents
Тогда измени названия переменных. LOL. %size_1%, например.

Автор: lorents
Дата сообщения: 13.02.2011 19:31
01MDM
Сделал, как это не странно, но работает Спасибо.
Автор: netRunner razor
Дата сообщения: 14.02.2011 10:05
Ребят, подскажите,

Нужно читать имя ключа в реестре, и получать его значение (не в файл).

Перепробовал кучу выриантов, не помогло.

Буду благодарен!
Автор: BVV63
Дата сообщения: 14.02.2011 10:44
netRunner razor

Цитата:
Нужно читать имя ключа в реестре

То бишь имя заведомо неизвестно? Можно поподробнее?.. Где и по каким критериям его искать?
Автор: res2001
Дата сообщения: 14.02.2011 10:57
netRunner razor

Цитата:
Нужно читать имя ключа в реестре

А в for разобрать вывод reg query не судьба?
Автор: netRunner razor
Дата сообщения: 14.02.2011 11:16
BVV63
Имя ключа и его местоположение известно, меняется только его значение. Это значение и нужно отслеживать.

Это необходимо для PRTG Network Monitor. Everest пишет значения в реестр, скрипт должен их забирать.
Автор: Misha1989
Дата сообщения: 14.02.2011 11:25
netRunner razor
Цитата:
Имя ключа и его местоположение известно, меняется только его значение. Это значение и нужно отслеживать.

Через REG QUERY /S можно получить полный список ключей ветки реестра и при нахождении значения обработать нужный ключ, но работает это очень медленно.
Автор: BVV63
Дата сообщения: 14.02.2011 11:34
netRunner razor
Так Вам, наверное, не ключ нужен (какое у ключа значение может быть?), а параметр. Тогда "Reg Query" Вам и даст его значение:

Код: Reg Query /?
Автор: res2001
Дата сообщения: 14.02.2011 11:42
netRunner razor
вот тебе пример:
for /f "skip=4 tokens=3" %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\GloballyOpenPorts\List" /v "445:TCP" ') do echo.%%a
Автор: netRunner razor
Дата сообщения: 14.02.2011 11:55
В конец запутался...

HKEY_CURRENT_USER\Software\FinalWire\AIDA64\SensorValues\

Имя параметра Label.SCPU2UTI

Нужно выдрать значение параметра...
Автор: res2001
Дата сообщения: 14.02.2011 12:44
netRunner razor
for /f "skip=4 tokens=3" %%a in ('reg query "HKCU\Software\FinalWire\AIDA64\SensorValues" /v "Label.SCPU2UTI" ') do echo.%%a
Автор: netRunner razor
Дата сообщения: 14.02.2011 12:59
res2001
Благодарен, но вывод отсутвует...
Автор: res2001
Дата сообщения: 14.02.2011 13:08
netRunner razor
У меня на ВинХР работает.
Попробуй просто выдать в ком.строке:
reg query "HKLM\Software\FinalWire\AIDA64\SensorValues" /v "Label.SCPU2UTI"
Будет то что надо?

Добавлено:
О, вместо HKCU, написал HKLM. Видимо из-за этого у тебя ничего и не выводит.
Поправил свой прошлый пост, протесть еще раз.
Автор: slech
Дата сообщения: 14.02.2011 14:33
подскажите пожалуйста как выполнять скрипт в зависимости от OS Windows XP или Windows 7 ?
Windows XP
ver = Microsoft Windows XP [Version 5.1.2600]
OS=Windows_NT

Windows7
ver = Microsoft Windows [Version 6.1.7601]
OS=Windows_NT

насколько надёжен вариант с ver ?
Автор: res2001
Дата сообщения: 14.02.2011 14:50
slech
А почему сомнения обуяли в надежности ver?
Автор: slech
Дата сообщения: 14.02.2011 15:33
res2001
я незнаю что увижу например при Windows XP SP2 или SP1 или Windows7(у меня щас Windows7 SP1)
Автор: res2001
Дата сообщения: 14.02.2011 16:01
slech
По моему СП никак не влияют на номер версии.
Помню, что ХР после выхода релиза была точно такой же версии, как и сейчас, не взирая на 3 вышедших СП.
Вот пример батника.

Добавлено:
тут еще посмотри и тут
Автор: Misha1989
Дата сообщения: 14.02.2011 19:13
slech
Ориентируйся только на номер версии, он не меняется.
Это будет работать и в английской, и в русской винде.

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071

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


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