![]() |
Удаление файлов из папки, имя которой всегда разное
Как прописать в .cmd, чтобы удалялись одни и те же файлы из папки, имя которой меняется.
Пример: RD /S /Q "%LocalAppData%\Yandex\YandexBrowser\Application\20.4.3.257\searchband.exe RD /S /Q "%LocalAppData%\Yandex\YandexBrowser\Application\20.4.3.257\service_update.exe RD /S /Q "%LocalAppData%\Yandex\Application\20.4.3.257\yupdate-exec.exe Сейчас имя папки 20.4.3.257, с выходом новой версии браузера оно конечно измениться. Переписывать вручную, ну очень неудобно. |
Код:
$toDelete=( |
Fors1k_m, это для VBS ? Если да то выскакивает ошибка
Скрытый текст
---------------------------
Windows Script Host --------------------------- Сценарий: C:\Users\Администратор ПК\Desktop\Файл сценария VBScript.vbs Строка: 1 Символ: 1 Ошибка: Недопустимый знак Код: 800A0408 Источник: Ошибка компиляции Microsoft VBScript --------------------------- ОК --------------------------- И мне желательно удаление через .cmd. |
Цитата:
|
Fors1k_m, Понятно, я в этом не силён, так что извиняюсь.
Но нужно удаление через .cmd, так как там у меня прописаны и другие команды. А сам .cmd запускается из архива .SFX. |
Цитата:
|
Не проверялось:
Код:
@echo off |
У меня подозрение, что надо удалить не только файлы из папки, но и саму папку старой версии. Например, по принципу: если в папке содержится хотя бы один из перечисленных файлов (как вариант, все три перечисленные файла одновременно), то удаляем папку целиком - она разве зачем- то нужна?
|
Powershell:
Код:
del $env:LOCALAPPDATA\yandex\yandexbrowser\application\*\searchband.exe -Force -Confirm:$false |
Цитата:
Цитата:
Суть в том, чтобы настройки и удаление этих трёх файлов применялись на любой версии браузера. |
DJ Mogarych, Не удаляет.
Iska, Спасибо, работает. Всем спасибо, задача решена. |
Iska,
Вы помогли мне вот такой командой. @echo off setlocal enableextensions enabledelayedexpansion pushd "%LocalAppData%\Yandex" && ( del /f /s /q "searchband.exe" "service_update.exe" "yupdate-exec.exe" popd ) endlocal exit /b 0 Но сегодня столкнулся с такой проблемой, при установке Корпоративной версии браузера. Инсталлятор устанавливает эту версию либо в Program Files (x86) либо в Program Files, в зависимости от разрядности а не в %LocalAppData%. Соответственно эти файлы не удаляются. Поэтому я прошу, могли бы вы написать команду, что бы эти файлы искались и удалялись не только в %LocalAppData% но и в Program Files (x86) и Program Files. |
BKPB, а с чем помогать-то? Перечисленные пути, я полагаю, Вы и сами в состоянии подставить, продублировав код от pushd до ) дважды.
|
Iska,
pushd "%Program Files (x86)%\Yandex" && ( del /f /s /q "searchband.exe" "service_update.exe" "yupdate-exec.exe" popd pushd "%Program Files%\Yandex" && ( del /f /s /q "searchband.exe" "service_update.exe" "yupdate-exec.exe" popd ) так ? |
Сейчас попробую по другому.
|
BKPB, а) одну закрывающую скобку пропустили в первом блоке и б) лишний пробел в именах переменных окружения. Чтобы посмотреть, как выглядят соответствующие переменные окружения, наберите, например, их начальные символы:
Код:
set prog Цитата:
|
Iska, Спасибо.
|
Вопрос закрыт.
Решение
:: Сценарий вывода запроса UAC на получение прав Администратора
@reg query "HKU\S-1-5-19\Environment" >nul 2>&1 & cls @if "%Errorlevel%" NEQ "0" ( cmd /u /c echo. CreateObject^("Shell.Application"^).ShellExecute "%~f0", "", "", "runas", 1 > "%Temp%\GetAdmin.vbs" @"%Temp%\GetAdmin.vbs" & del "%Temp%\GetAdmin.vbs" & cls & exit ) @echo off setlocal enableextensions enabledelayedexpansion pushd "%LocalAppData%\Yandex" && ( del /f /s /q "service_update.exe" "yupdate-exec.exe" popd ) pushd "%ProgramFiles%\Yandex" && ( del /f /s /q "service_update.exe" "yupdate-exec.exe" popd ) pushd "%ProgramFiles(x86)%\Yandex" && ( del /f /s /q "service_update.exe" "yupdate-exec.exe" popd ) endlocal exit /b 0 |
Время: 18:47. |
Время: 18:47.
© OSzone.net 2001-