Я хотел создать .bat, который включает или выключает некоторые настройки Windows, чтобы я мог привязать его к сочетанию клавиш. Я создал .bat-файл, который пытается добавить ключ реестра NoDesktop, чтобы значки на рабочем столе могли быть скрыты, если он запускает проверку в reg и не может найти значение ключа, или удаляет ключ реестра, если он может найти ключ стоимость.
@echo off
REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer"
/v NoDesktop
if %errorlevel% equ 0 ((
REG DELETE
"HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v
NoDesktop /f
)& echo Registry key deleted, now the desktop icons should be displayed.
(
pause)
)
else (REG add
"HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v
NoDesktop /t REG_DWORD /d 1 /f (
& echo Registry key added, now the desktop icons should be hidden.
))
pause
но когда я запускаю его, командная строка выскакивает и сразу закрывается. Затем я попытался удалить все скобки, но он показывает сообщение о том, что ключ реестра не найден, что хорошо, и должен вызвать команду else, но это не так, и он предлагает мне выйти.
что я сделал не так? Я также попытался удалить все команды эха, так как я боюсь, что если a, то b & c, иначе d & e не работает в cmd. но это все еще показывает, что ключ реестра не найден и предлагает мне выйти. Я также попытался изменить скобки и убедиться, что они все закрыты, но все равно не работает.
ОБНОВЛЕНИЕ: Спасибо, мне удалось исправить синтаксис и заставить летучую мышь работать хорошо после некоторого поиска в Google .... но у меня все еще есть несколько проблем: @echo off
REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer"
/v NoDesktop 2>nul
if %errorlevel% equ 0 (
REG DELETE
"HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer"
/v NoDesktop /f & echo Registry key deleted, now the desktop icons should be
displayed. & pause
) else (
REG add "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer"
/v
NoDesktop /t REG_DWORD /d 1 /f & echo Registry key added, now the desktop
icons should be hidden. & pause
)
2> нуль абсолютно необходимо? Отсюда я узнал https://stackoverflow.com/questions/35458001/check-if-registry-key-value-exists-and-if-so-log-it, что он присоединяет 2> nul в конце запроса reg но для этого человека https://community.spiceworks.com/topic/203455-bat-file-if-reg-key-exists-than-goto он этого не делает. Почему его программа не сообщает об ошибке и не останавливается, как моя?
Даже при том, что программа работает гладко и добавляет и удаляет раздел реестра, как и предполагалось ... все равно значки на рабочем столе не станут скрытыми или скрытыми. Добавление и удаление записи реестра Nodesktop - это единственный метод, который я нашел в сети, который включает и отключает значки на рабочем столе из cmd. И, следовательно, единственный способ, которым я знаю, что это может сделать файл .bat и сделать сочетание клавиш, чтобы я мог переключать настройки с помощью ввода с клавиатуры.
Написание программ с помощью cmd не было самым приятным опытом. Существуют ли другие способы написания простых программ, которые можно запускать в Windows, но не справляясь со старым языком cmd или установкой некоторых других языков времени выполнения, таких как c ++ или java? и как вы делаете .exe с базовым графическим интерфейсом для простых функций, как этот?
источник
Ответы:
я предлагаю тебе
&&
или неудачи||
>NUL 2>&1
Непроверенные:
источник