Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Скрипт для удаления файлов и папок

Ответить
Настройки темы
VBS/WSH/JS - [решено] Скрипт для удаления файлов и папок

Аватара для BKPB

Старожил


Сообщения: 176
Благодарности: 6

Профиль | Отправить PM | Цитировать


Изменения
Автор: BKPB
Дата: 03-02-2018
Собрал из кусков скрипт для удаления файлов и папок.
Но проблема такая, если все указанные в скрипте файлы присутствуют в системе то он отрабатывает нормально.
А если какого нибудь файла или папки нет, то скрипт выдаёт ошибку: файл не найден и окно висит пока не закроешь вручную.
Помогите подправить или написать новый, чтобы не было такой ошибки.
Вот мой скрипт:
Скрытый текст
' Задержка 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 (он просто заменяет файлы в папке с настройками) и затем удалились бы нужные папки и файлы,
то я бы был безмерно вам благодарен.

Отправлено: 18:22, 03-02-2018

 

Аватара для BKPB

Старожил


Сообщения: 176
Благодарности: 6

Профиль | Отправить PM | Цитировать


Казбек,
Если запускать из папки 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"

Отправлено: 21:17, 03-02-2018 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.

mwz mwz вне форума

Аватара для mwz

Ушел из жизни


Сообщения: 8595
Благодарности: 2127

Профиль | Сайт | Отправить PM | Цитировать


Цитата BKPB:
start " " /wait Setup.exe »
Код: Выделить весь код
start " " /wait "%~dp0Setup.exe"
(и далее аналогично) тоже не срабатывает?

-------
Mikhail Zhilin

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:27, 03-02-2018 | #12


Аватара для Казбек

Ветеран


Сообщения: 5380
Благодарности: 1875

Профиль | Отправить PM | Цитировать


BKPB,

Расскажите нам на словах, что вы хотите сделать. Без кода. И конечную цель этих действий.

Цитата BKPB:
запуск происходит не из самой папки TEMP,
а из C:\Users\Администратор ПК\AppData\Local\Temp\RarSFX0 и эта папка RarSFX0 всегда имеет разное имя,
то RarSFX0, то RarSFX1. И поэтому сценарий не срабатывает: Невозможно найти файлы Setup.exe и Settings.exe. »
Мне кажется, это вполне логично. Тогда зачем вы подставляете тот путь, по которому нет ваших исполняемых файлов....

На том скрине, что вы предоставили выше, вы выполнили:
Код: Выделить весь код
start "" /wait "Temp\Setup.exe"
Вместо моего варианта:
Код: Выделить весь код
start "" /wait "%Temp%\Setup.exe"

-------
Кто реку перешел, тому росы бояться ни к чему

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:41, 03-02-2018 | #13


Аватара для BKPB

Старожил


Сообщения: 176
Благодарности: 6

Профиль | Отправить PM | Цитировать


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"

Отправлено: 21:49, 03-02-2018 | #14


Ветеран


Contributor


Сообщения: 2728
Благодарности: 1697

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@Echo Off

Set "BoxIn=Z:\Users\Администратор ПК\AppData\Local\Temp\RarSFX*"

FOR /D %%d IN ("%BoxIn%") DO If Exist "%%d\Setup.exe" (Pushd "%%d" &Start " " /wait "Setup.exe")
FOR /D %%d IN ("%BoxIn%") DO If Exist "%%d\Settings.exe" (Pushd "%%d" &Start " " /wait "Settings.exe")
Popd

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 03-02-2018 в 22:02.


Отправлено: 21:53, 03-02-2018 | #15


Аватара для BKPB

Старожил


Сообщения: 176
Благодарности: 6

Профиль | Отправить PM | Цитировать


=кк

Последний раз редактировалось BKPB, 03-02-2018 в 22:08.


Отправлено: 22:01, 03-02-2018 | #16


Ветеран


Contributor


Сообщения: 2728
Благодарности: 1697

Профиль | Отправить PM | Цитировать


Цитата BKPB:
У меня получилось 3 файла: browser.7z, Setup.exe, Settings.exe. »
Где они получились? Где они находятся? Укажите полный путь. Setup.exe, Settings.exe - это исполнимые файлы или самораспаковывающиеся архивы? Куда?
Цитата BKPB:
Pushd "%Temp%"
start " " /wait "%~dp0Setup.exe"
Popd
Pushd "%Temp%"
start " " /wait "%~dp0Settings.exe"
Popd »
ИМХО, это неправильно. Если Setup.exe и Settings.exe находятся рядом с Вашим батником, то
Код: Выделить весь код
Pushd "%~dp0"
start " " /wait "Setup.exe"
start " " /wait "Settings.exe"
Popd
BKPB, Разберитесь с путями. Батник запускается из любого места? Какой полный путь к Setup.exe, Settings.exe?
Цитата BKPB:
не стали удалятся файлы и папка »
А они там есть? А батник сохраняли в 866 кодировке? То, что Вы показываете, содержит русские буквы. Поэтому это очень важно.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 03-02-2018 в 22:25.

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:04, 03-02-2018 | #17


Аватара для BKPB

Старожил


Сообщения: 176
Благодарности: 6

Профиль | Отправить PM | Цитировать


Я хочу создать инсталлятор Яндекс браузера без голосового помощника Алиса и с моими готовыми настройками, а также удалить не нужную после установки папку 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"

Файлы и папка всё равно остаются на месте.

Отправлено: 22:38, 03-02-2018 | #18


Аватара для BKPB

Старожил


Сообщения: 176
Благодарности: 6

Профиль | Отправить PM | Цитировать


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

тогда все удаления отрабатывают отлично.

Отправлено: 23:04, 03-02-2018 | #19


Ветеран


Contributor


Сообщения: 2728
Благодарности: 1697

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: txt я18020321.bat.txt
(646 байт, 3 просмотров)

Цитата megaloman:
А батник сохраняли в 866 кодировке? То, что Вы показываете, содержит русские буквы. Поэтому это очень важно. »
VBS надо сохранять в 1251 кодировке. Если он работает, то так оно и есть. CMD должен работать с 866 кодировкой. Я приложил вариант батника в нужной кодировке. Переименуйте его.
В файле забыл убрать
Код: Выделить весь код
FOR /D %%d IN ("%BoxIn%") DO If Exist "%%d\Setup.exe" (Pushd "%%d" &Echo Start " " /wait "Setup.exe")
FOR /D %%d IN ("%BoxIn%") DO If Exist "%%d\Settings.exe" (Pushd "%%d" &Echo Start " " /wait "Settings.exe")
Подкорректируйте, пожалуйста.
Или, как вариант, если, например, Вы батник сохраняете блокнотом (1251 кодировка)
Код: Выделить весь код
@Echo Off
chcp 1251 >nul

Set "BoxIn=Z:\Users\Администратор ПК\AppData\Local\Temp\RarSFX*"
FOR /D %%d IN ("%BoxIn%") DO If Exist "%%d\Setup.exe" (Pushd "%%d" &Start " " /wait "Setup.exe")
FOR /D %%d IN ("%BoxIn%") DO If Exist "%%d\Settings.exe" (Pushd "%%d" &Start " " /wait "Settings.exe")

Del /F /Q "Z:\Users\Администратор ПК\AppData\Local\Yandex\YandexBrowser\Application\17.11.1.990\service_update.exe"
Del /F /Q "Z:\Users\Администратор ПК\AppData\Local\Yandex\YandexBrowser\Application\17.11.1.990\yupdate-exec.exe"

Rd /S /Q "Z:\Users\Администратор ПК\AppData\Local\Yandex\YandexBrowser\Application\17.11.1.990\Installer"

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 03-02-2018 в 23:58.

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:38, 03-02-2018 | #20



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Скрипт для удаления файлов и папок

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - [решено] Скрипт для удаления старых файлов и папок из определенной папки avfiga Скриптовые языки администрирования Windows 71 07-01-2023 18:50
VBS/WSH/JS - Скрипт для забора файлов и папок (с сохр. структуры) из неск. сетевых папок в одну л. DjBoBo Скриптовые языки администрирования Windows 0 19-07-2016 16:30
VBS/WSH/JS - Скрипт удаления папок/подпапок и файлов zhuk09 Скриптовые языки администрирования Windows 4 07-12-2015 12:41
CMD/BAT - [решено] Как переделать скрипт удаления папок, на скрипт удаления файлов ufooo Скриптовые языки администрирования Windows 2 02-06-2015 12:22
CMD/BAT - Скрипт поиска и удаления файлов и папок с длиной пути больше 256 символов Alex007 Скриптовые языки администрирования Windows 2 01-12-2014 18:44




 
Переход