我正在创建一个需要复制到某个固定目录的应用程序,但需要在运行 SFX 的目录中复制一个文件。
我无法做到这一点。我使用 .bat 创建并使用 FOR 来读取我通过从 SFX 执行调用 SET 来写入的文件。但它总是与安装目录有关。
所以,要清楚,我需要做的是:
- 将所有文件从 SFX 复制到一个目录
- 将这些文件之一移动到执行 SFX 的目录
有任何想法吗?
我正在创建一个需要复制到某个固定目录的应用程序,但需要在运行 SFX 的目录中复制一个文件。
我无法做到这一点。我使用 .bat 创建并使用 FOR 来读取我通过从 SFX 执行调用 SET 来写入的文件。但它总是与安装目录有关。
所以,要清楚,我需要做的是:
有任何想法吗?
例如,如果您的应用程序 SFX 将被调用myapp.exe
,那么您可以批量执行以下操作(假设我已正确理解您的问题):
@ECHO OFF
:: configure: directory where to install application
SET DSTDIR=D:\program files\my app
:: configure: which installed file to move back to installer directory
SET MOVEFILE=lang\ast.txt
:: %~dp0 is expanded to where we (the batch) currently are
SET SRCDIR=%~dp0
:: call 7-zip self-extractor with destination directory (1)
myapp.exe -o"%DSTDIR%"
:: move the special file back (2)
MOVE "%DSTDIR%\%MOVEFILE%" "%SRCDIR%"