![解壓縮後刪除 SFX 文件](https://rvso.com/image/1365820/%E8%A7%A3%E5%A3%93%E7%B8%AE%E5%BE%8C%E5%88%AA%E9%99%A4%20SFX%20%E6%96%87%E4%BB%B6.png)
我創建了一個 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 檔案中,然後在 WinRar 指令中使用該 bat 檔案刪除 SFX 檔案。
@echo off
del "file-to-delete"
答案2
您必須選擇 SFX 存檔的 GUY 模式。 64 機器上的 32 位元 rar 模式不會刪除 64 機器上的 64 位元 rar 模式會刪除檔案。
否則你可以使用powershell在cmd中刪除資料夾。
powershell "rd -r \"%PROGRAMFILES%\company\folder\""
答案3
此解決方案會刪除自解壓縮 (SFX) 檔案本身。另一個解決方案似乎是刪除提取的檔案。
- 選擇預設64.SFX對於 SFX 模組進階音效選項對話,模組標籤。
- 在裡面設定選項卡添加以下帶引號的文字:“%comspec%”/c del“%sfxname%”
- 在裡面設定選項卡不檢查等待並返回退出代碼盒子
如果要偵錯,請從 /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