![]() |
Скрипт для удаления файлов и папок
Собрал из кусков скрипт для удаления файлов и папок.
Но проблема такая, если все указанные в скрипте файлы присутствуют в системе то он отрабатывает нормально. А если какого нибудь файла или папки нет, то скрипт выдаёт ошибку: файл не найден и окно висит пока не закроешь вручную. Помогите подправить или написать новый, чтобы не было такой ошибки. Вот мой скрипт: Скрытый текст
' Задержка 1 секунда
WScript.Sleep 1*1000 ' Удаление файла WScript.CreateObject("Scripting.FileSystemObject").DeleteFile "C:\Users\Администратор ПК\AppData\Local\Yandex\YandexBrowser\Application\17.11.1.990\service_update.exe", True WScript.CreateObject("Scripting.FileSystemObject").DeleteFile "C:\Users\Администратор ПК\AppData\Local\Yandex\YandexBrowser\Application\17.11.1.990\yupdate-exec.exe", True ' Задержка 1 секунда WScript.Sleep 1*1000 ' Удаление папки WScript.CreateObject("Scripting.FileSystemObject").DeleteFolder "C:\Users\Администратор ПК\AppData\Local\Yandex\YandexBrowser\Application\17.11.1.990\Installer", True А если поможете написать скрипт или .cmd, чтобы сперва отработал инсталлятор браузера setup.exe, затем ещё один .exe (он просто заменяет файлы в папке с настройками) и затем удалились бы нужные папки и файлы, то я бы был безмерно вам благодарен. |
BKPB,
Код:
start "" /wait "C:\Program Files\setup.exe" |
Цитата:
Код:
On Error Resume Next |
Казбек,
Забыл указать, что .exe , будут запускаться из папки Temp. Сделал так, но не сработало. Скрытый текст
start "" /wait "\%Temp%\Setup.exe"
start "" /wait "\%Temp%\Settings.exe" Выдаёт ошибку: Не удается найти "\C:\Users\A47D~l\AppData\Local\Temp\Setup.exe". Проверьте, правильно ли указано имя и повторите попытку. Поправьте пожалуйста, как правильно сделать. |
BKPB,
Слэш перед Temp лишний. Код:
start "" /wait "%Temp%\Setup.exe" |
Казбек,
Тоже не сработало: Не удается найти "Temp\Setup.exe". Проверьте, правильно ли указано имя и повторите попытку. |
Цитата:
Или укажите сразу полный путь: Код:
start "" /wait "C:\Users\A47D~l\AppData\Local\Temp\Setup.exe" |
BKPB, что такое Temp? Если это переменная окружения, то я бы предложил
Код:
Pushd "%Temp%" Pushd "C:\Users\.........\Temp" По видимому, Pushd надо сделать обязательно, возможно exe ищет рядом в папке нужные фаилы и папки. |
|
BKPB, у вас на скриншоте текущая папка "C:\Users\.........\Temp" и вы зачем-то делаете Temp\setup.exe. Имхо, Temp\ здесь ошибочен и не нужен.
|
Казбек,
Если запускать из папки TEMP (переменная окружения), то срабатывает. Но дело в том, что при распаковке моего инсталлятора SFX, запуск происходит не из самой папки TEMP, а из C:\Users\Администратор ПК\AppData\Local\Temp\RarSFX0 и эта папка RarSFX0 всегда имеет разное имя, то RarSFX0, то RarSFX1. И поэтому сценарий не срабатывает: Невозможно найти файлы Setup.exe и Settings.exe. Скрытый текст
Pushd "%Temp%"
start " " /wait Setup.exe Popd ping -n 3 localhost>Nul Pushd "%Temp%" start " " /wait Settings.exe Popd del /f /q "C:\Users\Администратор ПК\AppData\Local\Yandex\YandexBrowser\Application\17.11.1.990\yupdate-exec.exe" "C:\Users\Администратор ПК\AppData\Local\Yandex\YandexBrowser\Application\17.11.1.990\service_update.exe" rd /s /q "C:\Users\Администратор ПК\AppData\Local\Yandex\YandexBrowser\Application\17.11.1.990\Installer" |
Цитата:
Код:
start " " /wait "%~dp0Setup.exe" |
BKPB,
Расскажите нам на словах, что вы хотите сделать. Без кода. И конечную цель этих действий. Цитата:
На том скрине, что вы предоставили выше, вы выполнили: Код:
start "" /wait "Temp\Setup.exe" Код:
start "" /wait "%Temp%\Setup.exe" |
mwz,
Спасибо, так срабатывает, но теперь не удаляются папки: Скрытый текст
Pushd "%Temp%"
start " " /wait "%~dp0Setup.exe" Popd Pushd "%Temp%" start " " /wait "%~dp0Settings.exe" Popd del /f /q "C:\Users\Администратор ПК\AppData\Local\Yandex\YandexBrowser\Application\17.11.1.990\yupdate-exec.exe" "C:\Users\Администратор ПК\AppData\Local\Yandex\YandexBrowser\Application\17.11.1.990\service_update.exe" rd /s /q "C:\Users\Администратор ПК\AppData\Local\Yandex\YandexBrowser\Application\17.11.1.990\Installer" |
Код:
@Echo Off |
=кк
|
Цитата:
Цитата:
Код:
Pushd "%~dp0" Цитата:
|
Я хочу создать инсталлятор Яндекс браузера без голосового помощника Алиса и с моими готовыми настройками, а также удалить не нужную после установки папку Installer и файлы yupdate-exec.exe и service_update.exe отвечающие за автоматическое обновление браузера.
У меня есть 3 файла: browser.7z, Setup.exe, Settings.exe. Которые я запаковываю в SFX WinRar. Setup.exe - исполняемый файл (оригинальный - установка браузера) Settings.exe - самораспаковывающиеся архив в котором находится папка Default c готовыми настройками браузера (после установки браузера она заменяет папку по умолчанию Default (C:\Users\Администратор ПК\AppData\Local\Yandex\YandexBrowser\User Data\Default). Мне нужно, чтобы файлы распаковались в папку %TEMP% и запустилась установка, а по окончании установки браузера, пака с настройками заменила такую же папку по умолчанию и удалились ненужные файлы service_update.exe service_update.exe и ненужная после установки папка Installer. Вот мой файл .cmd: Скрытый текст
Pushd "%Temp%"
start " " /wait "%~dp0Setup.exe" start " " /wait "%~dp0Settings.exe" Popd ping -n 6 localhost>Nul del "C:\Users\Администратор ПК\AppData\Local\Yandex\YandexBrowser\Application\17.11.1.990\yupdate-exec.exe" del "C:\Users\Администратор ПК\AppData\Local\Yandex\YandexBrowser\Application\17.11.1.990\service_update.exe" rd /s /q "C:\Users\Администратор ПК\AppData\Local\Yandex\YandexBrowser\Application\17.11.1.990\Installer" Установка проходит нормально, но файлы service_update.exe service_update.exe и ненужная после установки папка Installer не удаляются. Часть причины, я так думаю из за того что происходит запуск браузера после отработки инсталлятора, хотя даже после того как я его закрою и запущу Скрытый текст
del "C:\Users\Администратор ПК\AppData\Local\Yandex\YandexBrowser\Application\17.11.1.990\yupdate-exec.exe"
del "C:\Users\Администратор ПК\AppData\Local\Yandex\YandexBrowser\Application\17.11.1.990\service_update.exe" rd /s /q "C:\Users\Администратор ПК\AppData\Local\Yandex\YandexBrowser\Application\17.11.1.990\Installer" Файлы и папка всё равно остаются на месте. |
megaloman,
Вот батник который работает из папки (RarSFX0 или RarSFX1 - всегда разные) создаваемой SFX WinRar инсталлятором в папке ТЕМР С:\Users\Администратор ПК\AppData\Local\Temp\RarSFX* за исключением, что не удаляются файлы и папка Скрытый текст
Pushd "%Temp%"
start " " /wait "%~dp0Setup.exe" start " " /wait "%~dp0Settings.exe" Popd ping -n 6 localhost>Nul del "C:\Users\Администратор ПК\AppData\Local\Yandex\YandexBrowser\Application\17.11.1.990\yupdate-exec.exe" del "C:\Users\Администратор ПК\AppData\Local\Yandex\YandexBrowser\Application\17.11.1.990\service_update.exe" rd /s /q "C:\Users\Администратор ПК\AppData\Local\Yandex\YandexBrowser\Application\17.11.1.990\Installer" Вы говорите, что они не удаляются из за руских букв в пути, но до этого они именно по этим путям и удалялись. Просто я мучаюсь уже 5 часов и голова уже ватная, поэтому не пойму почему раньше в других батниках они удалялись а сейчас нет. megaloman, Если вы считаете, что так лучше сделаю так, Скрытый текст
Pushd "%~dp0"
start " " /wait "Setup.exe" start " " /wait "Settings.exe" Popd Просто я в этом ничего не понимаю поэтому и поросил помочь. Если делать удаление через скрипт, во так: Скрытый текст
' Задержка 1 секунда
WScript.Sleep 1*1000 ' Удаление файла WScript.CreateObject("Scripting.FileSystemObject").DeleteFile "C:\Users\Администратор ПК\AppData\Local\Yandex\YandexBrowser\Application\17.11.1.990\service_update.exe", True WScript.CreateObject("Scripting.FileSystemObject").DeleteFile "C:\Users\Администратор ПК\AppData\Local\Yandex\YandexBrowser\Application\17.11.1.990\yupdate-exec.exe", True ' Задержка 1 секунда WScript.Sleep 1*1000 ' Удаление папки WScript.CreateObject("Scripting.FileSystemObject").DeleteFolder "C:\Users\Администратор ПК\AppData\Local\Yandex\YandexBrowser\Application\17.11.1.990\Installer", True тогда все удаления отрабатывают отлично. |
Вложений: 1
Цитата:
В файле забыл убрать Код:
FOR /D %%d IN ("%BoxIn%") DO If Exist "%%d\Setup.exe" (Pushd "%%d" & Или, как вариант, если, например, Вы батник сохраняете блокнотом (1251 кодировка)
Код:
@Echo Off |
Цитата:
Код:
TASKLIST /FI "IMAGENAME eq set*" Цитата:
|
Если
Цитата:
|
megaloman,
Абсолютно верно. Но поскольку информацию от автора мы привыкли получать порционно, то даже такое поведение вполне может укладываться в формулировку: Цитата:
|
Казбек,
|
BKPB,
Выполняйте инструкцию из сообщения 20 или 17 от megaloman (там посыл, в принципе, дублируется). После этого скрипт должен сработать. Цитата:
Код:
Set objShell = WScript.CreateObject("WScript.Shell") |
Казбек,
Да, да я как раз сейчас это проверял всё отработало хорошо, за исключением распаковки Settings.exe, т.к служба браузера работала. Архив не смог заменить файлы в папке с программой. Нет ли какой нибудь команды после выполнения Setup.exe (установки браузера) завершить процесс браузера, а потом распаковать настройки. megaloman, Спасибо огромное, поменял русские символы на кодировку 866 из вашего я18020321.bat.txt И всё отлично отработало. |
Цитата:
Код:
TASKKILL /F /IM browser.exe |
Огромное спасибо всем кто помогал: Казбек, mwz, megaloman.
За ваше потраченное время и терпение. Задача решена. |
Задам ещё один вопрос.
Добавил в начало батника @echo off, чтобы скрыть процесс установки и всё бы хорошо пока не доходит до TASKKILL /F /IM browser.exe TASKKILL /F /IM service_update.exe тогда в окне появляются строки, что процессы такие то остановлены и что процесс service_update.exe не запущен Можно ли скрыть и эти сообщения или нет ? Вот батник: Скрытый текст
@echo off
@echo. @echo --- “бв***ў«Ёў*Ґвбпя џ*¤ҐЄб Ѓа*г§Ґа --- @echo. Pushd "%Temp%" start " " /wait "%~dp0Setup.exe" ping -n 7 localhost>Nul TASKKILL /F /IM browser.exe TASKKILL /F /IM service_update.exe ping -n 2 localhost>Nul start " " /wait "%~dp0Settings.exe" Popd ping -n 1 localhost>Nul del "C:\Users\Ђ¤¬Ё*Ёбва*в®а ЏЉ\AppData\Local\Yandex\YandexBrowser\Application\17.11.1.990\yupdate-exec.exe" del "C:\Users\Ђ¤¬Ё*Ёбва*в®а ЏЉ\AppData\Local\Yandex\YandexBrowser\Application\17.11.1.990\service_update.exe" del "C:\Users\Ђ¤¬Ё*Ёбва*в®а ЏЉ\AppData\Local\Yandex\YandexBrowser\Application\17.11.1.990\Installer\browser.7z" |
BKPB,
Код:
TASKKILL /F /IM browser.exe>nul 2>&1 |
Казбек,
тогда в окне появляются строки, что процессы такие то остановлены Это перестало появлятся, а процесс service_update.exe не запущен так и появляется |
Цитата:
Код:
TASKKILL /F /IM browser.exe>nul 2>&1 У меня все отрабатывает: Скрытый текст
![]() |
Цитата:
СПАСИБО ёщё раз. Теперь всё просто отлично. |
Время: 10:15. |
Время: 10:15.
© OSzone.net 2001-