|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Удаление ярлыка от не существующей программы |
|
CMD/BAT - [решено] Удаление ярлыка от не существующей программы
|
Старожил Сообщения: 176 |
Нужна команда для удаления ярлыка от не существующей программы.
Ярлык находится в C:\Users\Администратор ПК\AppData\Roaming\Microsoft\Windows\Start Menu\Programs имя ярлыка OneDrive Так не удаляется: del/q/f "%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\OneDrive.lnk" del/q/f "%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\OneDrive" del /f /s /q "%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\OneDrive.lnk" if exist "%AppData%\Roaming\Microsoft\Windows\Start Menu\Programs\OneDrive.lnk" del /Q /F "%ALLUSERSPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\OneDrive.lnk" del/q/f "%LocalAppData%\Microsoft\Windows\Start Menu\Programs\OneDrive.lnk" del/q/f "%LocalAppData%\Roaming\Microsoft\Windows\Start Menu\Programs\OneDrive.lnk" |
|
Отправлено: 17:20, 04-06-2020 |
Старожил Сообщения: 352
|
Профиль | Отправить PM | Цитировать Банальная отладка через
показала бы, что с путями тут всё очень не так, как надо.
Для пути C:\Users\Администратор ПК\AppData\Roaming\Microsoft\Windows\Start Menu\Programs %AppData% = C:\Users\Администратор ПК\AppData\Roaming Соответственно, И так далее... |
Отправлено: 17:42, 04-06-2020 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 176
|
Профиль | Отправить PM | Цитировать iglezz,
Спасибо, за помощь. Решение: del/q/f "%AppData%\Microsoft\Windows\Start Menu\Programs\OneDrive.lnk" |
Отправлено: 17:59, 04-06-2020 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать А ещё лучше WSH/PoSH, где есть доступ к псевдонимам, таким, как, например, «shell:Programs»
![]() |
Отправлено: 23:52, 04-06-2020 | #4 |
Забанен Сообщения: 793
|
Пример написан на коленке, но закомментирован, чтобы было понятно что к чему.
@echo off setlocal enabledelayedexpansion call:getShellFolder Programs call:getPathFromLink Programs OneDrive if not exist "!OneDrive!" ( echo del /f/q "!Programs!\OneDrive.lnk" ) endlocal exit /b :: получение пути шелл-папки по схеме shell::{guid} не всегда срабатывает в :: командных сценариях, поэтому излекаем путь нужной папки из реестра :getShellFolder set "key=HKCU\Software\Microsoft\Windows\CurrentVersion" set key="!key!\Explorer\Shell Folders" for /f "tokens=2,*" %%i in ('2^>nul reg query !key! /v %~1') do set "%~1=%%j" exit /b :: далее нужно проверить валидность ярлыка, для этого язвлекаем путь из :: последнего с помощью простых паттернов find и findstr :getPathFromLink for /f "delims=" %%i in ( 'find "\" ^< "!%~1!\%~2.lnk" ^| findstr /ric:"\..*$"' ) do set "%~2=%%i" rem если путь содержит переменную окружения, раскрываем ее в полный путь for /f "delims=" %%i in ('echo !%~2! ^| findstr /rc:"."') do set "%~2=%%i" rem удаляет метку версии, если таковая затесалась в путь if /i "!%~2:~1,1!" neq ":" set "%~2=!%~2:~1!" exit /b |
|
Отправлено: 16:51, 06-06-2020 | #5 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Интерфейс - [решено] Удаление ярлыка в меню Создать | avvp | Microsoft Windows 7 | 4 | 07-02-2012 15:01 | |
Разное - Запрос на удаление ярлыка при отсутствии объекта | Gordon_Freeman0 | Microsoft Windows 2000/XP | 2 | 29-08-2010 11:19 | |
Разное - Не открываются файлы, программы при акиваций ярлыка. | Intense1 | Microsoft Windows Vista | 4 | 12-12-2009 22:58 | |
Раздача ярлыка программы в сети | Diesel315 | Microsoft Windows NT/2000/2003 | 9 | 18-03-2009 12:47 | |
Удаление ярлыка из диалогового окна автозапуска | larios | Microsoft Windows 2000/XP | 1 | 03-02-2007 09:38 |
|