Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Удаление файлов из папки, имя которой всегда разное (http://forum.oszone.net/showthread.php?t=345305)

BKPB 24-05-2020 18:35 2922441

Удаление файлов из папки, имя которой всегда разное
 
Как прописать в .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, с выходом новой версии браузера оно конечно измениться.
Переписывать вручную, ну очень неудобно.

Fors1k 24-05-2020 19:46 2922454

Код:

$toDelete=(
    "searchband.exe",
    "service_update.exe",
    "yupdate-exec.exe"
);cls

(gci $env:LOCALAPPDATA\Yandex\YandexBrowser\Application -re -in $toDelete).FullName|%{ri $_}


BKPB 24-05-2020 20:06 2922457

Fors1k_m, это для VBS ? Если да то выскакивает ошибка
Скрытый текст
---------------------------
Windows Script Host
---------------------------
Сценарий: C:\Users\Администратор ПК\Desktop\Файл сценария VBScript.vbs
Строка: 1
Символ: 1
Ошибка: Недопустимый знак
Код: 800A0408
Источник: Ошибка компиляции Microsoft VBScript

---------------------------
ОК
---------------------------

И мне желательно удаление через .cmd.

Fors1k 24-05-2020 20:09 2922458

Цитата:

Цитата BKPB (Сообщение 2922457)
это для VBS ?

Это Powershell(.ps1).

BKPB 24-05-2020 20:20 2922461

Fors1k_m, Понятно, я в этом не силён, так что извиняюсь.
Но нужно удаление через .cmd, так как там у меня прописаны и другие команды.
А сам .cmd запускается из архива .SFX.

Опиум 25-05-2020 02:14 2922492

Цитата:

Цитата BKPB
RD /S /Q "%LocalAppData%\Yandex\YandexBrowser\Application\20.4.3.257\searchband.exe »

почему у вас команда на удаление папки применяется к файлу?

Iska 25-05-2020 05:30 2922506

Не проверялось:
Код:

@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


megaloman 25-05-2020 06:05 2922511

У меня подозрение, что надо удалить не только файлы из папки, но и саму папку старой версии. Например, по принципу: если в папке содержится хотя бы один из перечисленных файлов (как вариант, все три перечисленные файла одновременно), то удаляем папку целиком - она разве зачем- то нужна?

DJ Mogarych 25-05-2020 11:22 2922542

Powershell:
Код:

del $env:LOCALAPPDATA\yandex\yandexbrowser\application\*\searchband.exe -Force -Confirm:$false
del $env:LOCALAPPDATA\yandex\yandexbrowser\application\*\*update*.exe -Force -Confirm:$false

Пробуйте, не проверял.

BKPB 25-05-2020 11:32 2922543

Цитата:

Цитата Опиум
почему у вас команда на удаление папки применяется к файлу? »

Это я по ошибке, скопировал команду на удаление папки и дописал файл.

Цитата:

Цитата megaloman
она разве зачем- то нужна? »

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

BKPB 25-05-2020 12:12 2922548

DJ Mogarych, Не удаляет.

Iska, Спасибо, работает.

Всем спасибо, задача решена.

BKPB 26-05-2020 21:08 2922836

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.

Iska 26-05-2020 21:54 2922845

BKPB, а с чем помогать-то? Перечисленные пути, я полагаю, Вы и сами в состоянии подставить, продублировав код от pushd до ) дважды.

BKPB 26-05-2020 22:15 2922850

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 26-05-2020 23:14 2922856

Сейчас попробую по другому.

Iska 27-05-2020 05:06 2922880

BKPB, а) одну закрывающую скобку пропустили в первом блоке и б) лишний пробел в именах переменных окружения. Чтобы посмотреть, как выглядят соответствующие переменные окружения, наберите, например, их начальные символы:
Код:

set prog
Цитата:

Цитата BKPB
Я в этом деле, ну совсем не разбираюсь. »

Дык, значит, пора учиться :), коллега.

BKPB 27-05-2020 09:31 2922914

Iska, Спасибо.

BKPB 27-05-2020 10:25 2922925

Вопрос закрыт.
Решение
:: Сценарий вывода запроса 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-