Удалить SFX-файл после извлечения

Удалить SFX-файл после извлечения

Я создал SFX для извлечения некоторых файлов. После извлечения мне нужно, чтобы файл SFX был удален. Насколько я видел, WinRar не предлагает такой возможности. Поэтому я подумал запустить какую-нибудь командную строку DOS (типа bat).

Вот мой код на данный момент (не работает):

SETUP=cmd /c del /f /q "file-to-delete"

Открывается cmd, мигает и закрывается...

У кого-то похожая проблема:http://www.msfn.org/board/topic/34506-sfx-remove-file-after-extraction/

решение1

Посмотрите, работает ли это - включите точный путь к файлу и посмотрите, удалит ли он его. Если да, то вы можете попробовать относительные пути.

SETUP="%comspec%" /c del "c:\program location\file-to-delete"

Если это не помогло, включите эту команду в bat-файл, расположенный там, где находится файл, а затем используйте bat-файл для удаления SFX-файла в директиве WinRar.

@echo off
del "file-to-delete"

решение2

необходимо выбрать режим GUY архива SFX. 32-битный режим rar на 64-разрядной машине не удалит файл, 64-битный режим rar на 64-разрядной машине удалит файл.

в противном случае вы можете использовать PowerShell для удаления папки в cmd.

powershell "rd -r \"%PROGRAMFILES%\company\folder\""

решение3

Это решение удаляет сам самораспаковывающийся (SFX) архив. Другое решение, похоже, удаляет извлеченный файл.

  1. ВыбиратьDefault64.SFXдля модуля SFX вРасширенные возможности звуковых эффектовдиалог,Модульвкладка.
  2. вНастраиватьвкладку добавьте следующий текст в кавычках:"%comspec%" /c del "%sfxname%"
  3. вНастраиватьвкладку не проверяйтеПодождите и вернитесь для получения кода выхода.коробка

Если вы хотите выполнить отладку, измените параметр с /c на /k, чтобы оставить окно команд открытым. Комментарий к архиву должен выглядеть примерно так.

;The comment below contains SFX script commands
Setup="%comspec%" /c del "%sfxname%"
Silent=2
Overwrite=1

Доступные переменные можно отобразить в командной строке после использования /k

E:\New folder>SET SFX
sfxcmd="E:\New folder\ReadMe.exe"
sfxname=E:\New folder\ReadMe.exe
sfxpar=
sfxstime=2020-11-13-16-45-37-025

Связанный контент