Вы должны войти, чтобы создавать сообщения и темы.

Сохранение и восстановление настроек System Tray

1◄Страница 3 из 4►

День добрый, похоже Ссылка на файл умерла, поправьте пожалуйста, не получается скачать.

Привет.
Ссылка работает.

Лайкнули fakel и Игорь
fakelИгорь
«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн

fakel, приветствую 🖐
И в твоём сообщении и на первой странице, ссылки работают.

Лайкнул fakel
fakel
От того что ты делаешь сегодня, зависит то, как ты будешь жить завтра.

fakel,  🖐
Ссылка рабочая. Перезалив

Лайкнул fakel
fakel

Прошу простить за беспокойство, всем огромное спасибо, нужно было качать сразу через Tor...

Лайкнул Игорь
Игорь

Cronos, привет!🖐
В более новых версиях системы Windows, начиная с Windows 2000 используется формат "Windows Registry Editor Version 5.00". Возможно поправить содержимое файла так, чтобы избавиться от "REGEDIT4", т.к. он использовался для более старых версий Windows, а использовался "Windows Registry Editor Version 5.00"?

Сам спросил, сам отвечу.
Нужно заменить:

:Backup
ECHO Backup
regedit.exe -ea "%CD%\TraySettings.reg" "HKEY_CURRENT_USER\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify"
goto end

на:

:Backup
ECHO Backup
regedit.exe /e "%CD%\TraySettings.reg" "HKEY_CURRENT_USER\SOFTWARE\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify"
goto end

Здравствуйте.
В этом месте не выполняется условие проверки корректности ввода, тобишь сообщение "не является допустимым вариантом, попробуйте снова" не выводится.

:start
ECHO.
ECHO 1. Back up
ECHO 2. Restore
ECHO 3. Exit
set /p choice=Введите номер, чтобы выполнить команду.
if '%choice%'=='' ECHO "%choice%"  не является допустимым вариантом, попробуйте снова
if '%choice%'=='1' goto Backup
if '%choice%'=='2' goto Restore
if '%choice%'=='3' goto Exit
ECHO.
goto start

Необходимо поправить:

:start
echo.
echo 1. Backup
echo 2. Restore
echo 3. Exit
set /p choice=Введите номер, чтобы выполнить команду: 
if not "%choice%"=="1" if not "%choice%"=="2" if not "%choice%"=="3" (
    echo Введённый вариант не является допустимым. Пожалуйста, повторите выбор.
    goto start
)
if '%choice%'=='1' goto Backup
if '%choice%'=='2' goto Restore
if '%choice%'=='3' goto Exit
echo.
goto start

Игорь, Привет.
Какой-то странный код у тебя))

:start
chcp 65001 > nul
@echo off
echo 1. Backup
echo 2. Restore
echo 3. Exit

set /p choice=введите номер:

if "%choice%"=="1" goto Backup
if "%choice%"=="2" goto Restore
if "%choice%"=="3" goto Exit

echo Неверный ввод.
goto start

:Backup

:Restore

:Exit
exit
«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн

Mikhail, привет)
Смысл один и тот же. Проверка всех недопустимых вариантов одновременно и проверка, где каждое условие проверяется по отдельности.
В моём фрагменте:
Проверяется каждый вариант отдельно с помощью нескольких операторов if not.
Если ни одно из условий не выполняется (то есть введенное значение не равно ни "1", ни "2", ни "3"), то выводится сообщение об ошибке с помощью echo и происходит переход обратно к метке :start.

У тебя во фрагменте:
Ввод просто сравнивается с каждым вариантом через оператор if.
Если ни одно из условий не выполняется, выводится сообщение об ошибке с помощью echo и также происходит переход обратно к метке :start.

Ну и кодировочку нужно обязательно не такую chcp 65001  , а такую - chcp 1251 , т.к. используется кириллица на выводе, чтобы не было барматухи. 😀

Игорь, Ну так у меня проще и правильней, зачем проверять условие, если else и так будет, когда будет введен неверный ввод.
А chcp 65001 > nul устанавливает urf-8 чтоб не было кракозябр, если кто-то сохранит криво и т.д.

«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн

Mikhail, насчёт кодировки, у автора сохранён .cmd в кириллице 1251, и chcp 1251 потому нужен.
Насчёт chcp 65001, если .cmd сохранён в UTF 8. То могут быть проблемы, если использовать title.

chcp 65001 > nul
title Резервное копирование трея

Вот
Происходит лишняя, как по мне надпись 'Administrator'. В это можно убедиться, произведя неверный ввод.

Да, так и так работает, поэтому используй как нравится)

«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн

Mikhail, согласен 🙂

1◄Страница 3 из 4►