Выделение пунктов цветом.
Цитата: N от 10.02.2026, 16:21Всех приветствую!
Помогите решить трудный для меня момент. При проверке пункта, он выделяется у меня весь. Хотелось бы если это возможно, что бы он оставался заданным ему цветом, а рядом надпись, применён пункт или нет с нужным цветом. Сейчас проверка выполняется так
reg query HKLM\Software\Classes\exefile\shell\runas" /v "ProgrammaticAccessOnly && set "Ad=0a" || set "Ad=04"Заранее благодарю!
Всех приветствую!
Помогите решить трудный для меня момент. При проверке пункта, он выделяется у меня весь. Хотелось бы если это возможно, что бы он оставался заданным ему цветом, а рядом надпись, применён пункт или нет с нужным цветом. Сейчас проверка выполняется так
reg query HKLM\Software\Classes\exefile\shell\runas" /v "ProgrammaticAccessOnly && set "Ad=0a" || set "Ad=04"
Заранее благодарю!
Цитата: Mikhail от 10.02.2026, 16:55N, Привет.
Так ты перенеси по ближе название меню я так понял, полного кода нет, непонятно.
Вот пример я настаряпал:@echo off chcp 65001 >nul set "ch=cecho.exe" reg query "HKLM\Software\Classes\exefile\shell\runas" /v "ProgrammaticAccessOnly" >nul 2>&1 && ( %ch% {0f}Проверка runas: {0a}Применён{\n} ) || ( %ch% {0f}Проверка runas: {04}Не применён{\n} ) pause
N, Привет.
Так ты перенеси по ближе название меню я так понял, полного кода нет, непонятно.
Вот пример я настаряпал:
@echo off
chcp 65001 >nul
set "ch=cecho.exe"
reg query "HKLM\Software\Classes\exefile\shell\runas" /v "ProgrammaticAccessOnly" >nul 2>&1 && (
%ch% {0f}Проверка runas: {0a}Применён{\n}
) || (
%ch% {0f}Проверка runas: {04}Не применён{\n}
)
pause
Цитата: N от 10.02.2026, 19:55Спасибо Миш!
А случайно не подскажешь, как проверить размер файла, если заранее известно его место и имя и если соответствует нужному размеру, то тогда производятся определённые действия. Просто есть одинаковые файлы, а вот какой из них используется можно определить только по размеру.
Спасибо Миш!
А случайно не подскажешь, как проверить размер файла, если заранее известно его место и имя и если соответствует нужному размеру, то тогда производятся определённые действия. Просто есть одинаковые файлы, а вот какой из них используется можно определить только по размеру.
Цитата: Mikhail от 11.02.2026, 01:55N, Самый простой вроде как способ:
В байтах впиши сколько весит файл твой, размер через свойства файла, не на диске, а именно размер и все, ну и путь до файла., если совпадает, дописывай действия что нужно делать и т.д.@echo off chcp 65001 >nul set "file=%USERPROFILE%\Desktop\1.exe" for %%A in ("%file%") do ( echo Размер файла: %%~zA if %%~zA==41820320 ( echo Совпадает ) else ( echo Не совпадает ) ) pause
N, Самый простой вроде как способ:
В байтах впиши сколько весит файл твой, размер через свойства файла, не на диске, а именно размер и все, ну и путь до файла., если совпадает, дописывай действия что нужно делать и т.д.
@echo off
chcp 65001 >nul
set "file=%USERPROFILE%\Desktop\1.exe"
for %%A in ("%file%") do (
echo Размер файла: %%~zA
if %%~zA==41820320 (
echo Совпадает
) else (
echo Не совпадает
)
)
pause
Цитата: N от 11.02.2026, 12:38Миш, попробовал твой код, отдельно работает. А вот когда пытаюсь добавить себе в проект не работает.
rem Состояние контекстного меню панели задач set "file=%SystemRoot%\ru-RU\explorer.exe.mui" for %%A in ("%file%") do (if %%~zA==14336 (set "TskBar={0a}применён") else (set "TskBar={04}не применён")) rem Состояние контекстного меню панели задач и проводника set "file=%SystemRoot%\ru-RU\explorer.exe.mui" for %%A in ("%file%") do (if %%~zA==328192 (set "TskPZMenu={0a}применён") else (set "TskPZMenu={04}не применён")) ) >nul 2>&1 %ch% {0f} 1 -{#} {0b}Панель задач {08}[%TskBar%{08}]{\n #} %ch% {0f} 2 -{#} {0b}Панель задач и проводник {08}[%TskPZMenu%{08}]{\n #}Первый пункт не применён, а второй применён, но отображаются оба не применёнными. Что ни так не пойму.
Миш, попробовал твой код, отдельно работает. А вот когда пытаюсь добавить себе в проект не работает.
rem Состояние контекстного меню панели задач
set "file=%SystemRoot%\ru-RU\explorer.exe.mui"
for %%A in ("%file%") do (if %%~zA==14336 (set "TskBar={0a}применён") else (set "TskBar={04}не применён"))
rem Состояние контекстного меню панели задач и проводника
set "file=%SystemRoot%\ru-RU\explorer.exe.mui"
for %%A in ("%file%") do (if %%~zA==328192 (set "TskPZMenu={0a}применён") else (set "TskPZMenu={04}не применён"))
) >nul 2>&1
%ch% {0f} 1 -{#} {0b}Панель задач {08}[%TskBar%{08}]{\n #}
%ch% {0f} 2 -{#} {0b}Панель задач и проводник {08}[%TskPZMenu%{08}]{\n #}
Первый пункт не применён, а второй применён, но отображаются оба не применёнными. Что ни так не пойму.
Цитата: Mikhail от 11.02.2026, 12:48А
) >nul 2>&1, ты закрыл получается блок
Во так должно быть.@echo off chcp 65001 >nul set "ch=cecho.exe" for %%A in ("%SystemRoot%\ru-RU\explorer.exe.mui") do if %%~zA==14336 (set "TskBar={0a}применён") else (set "TskBar={04}не применён") for %%A in ("%SystemRoot%\ru-RU\explorer.exe.mui") do if %%~zA==328192 (set "TskPZMenu={0a}применён") else (set "TskPZMenu={04}не применён") %ch% {0f} 1 -{#} {0b}Панель задач {08}[%TskBar%{08}]{\n #} %ch% {0f} 2 -{#} {0b}Панель задач и проводник {08}[%TskPZMenu%{08}]{\n #} pause
А Скопировано) >nul 2>&1, ты закрыл получается блок
Во так должно быть.
@echo off
chcp 65001 >nul
set "ch=cecho.exe"
for %%A in ("%SystemRoot%\ru-RU\explorer.exe.mui") do if %%~zA==14336 (set "TskBar={0a}применён") else (set "TskBar={04}не применён")
for %%A in ("%SystemRoot%\ru-RU\explorer.exe.mui") do if %%~zA==328192 (set "TskPZMenu={0a}применён") else (set "TskPZMenu={04}не применён")
%ch% {0f} 1 -{#} {0b}Панель задач {08}[%TskBar%{08}]{\n #}
%ch% {0f} 2 -{#} {0b}Панель задач и проводник {08}[%TskPZMenu%{08}]{\n #}
pause
Цитата: N от 11.02.2026, 12:53Спасибо Миш!
Всё работает.
Спасибо Миш!
Всё работает.