Sil*_*bit 5 windows installation nsis
我正在使用以下命令复制文件。
设置输出路径后...
File "Documents\*"
Run Code Online (Sandbox Code Playgroud)
这个动作完美无缺。处理 Documents 目录中的文件没有问题,直到...
如果目录中有现有文件的副本(具有不同的名称),则无论名称如何,只会复制该文件的第一个实例。
我该如何制作它才能复制所有文件,而不管它们是否是其他文件的副本?
更正/更好的解释(也许)
对于造成的混乱,我深表歉意。请允许我尝试重述这个问题。使用 FILE 命令提取的文件是这里的问题。文件由原始文件和相同文件的副本(仅名称不同)组成。
例如:MyDocument.txt 和 copyOfMyDocument.txt 等等..
当应用 File 命令时,为了将文件提取到当前输出路径,只提取文件的第一个实例(副本或原始...但不是两者)。再次,我很抱歉造成混乱,但这是我第一次不得不与 NSIS 合作。我需要提取所有文件。
最简单的方法是将其放在您创建的不同目录中。然后,如果您需要担心重命名(正如评论员指出您的问题没有多大意义),您可以逐个文件地攻击它。
# Extract the files to a directory which can't exist beforehand
CreateDirectory $PLUGINSDIR\extracting
SetOutPath $PLUGINSDIR\extracting
File Documents\*
# Now go through file by file
FindFirst $0 $1 $OUTDIR\*
${While} $1 != ""
${If} ${FileExists} $DOCUMENTS\$1
# This still isn't infallible, of course.
Rename $DOCUMENTS\$1 $DOCUMENTS\$1.local-backup
${EndIf}
Rename $OUTDIR\$1 $DOCUMENTS\$1
FindNext $0 $1
${Loop}
FindClose $0
SetOutPath $INSTDIR # Or somewhere else
RMDir $PLUGINSDIR\extracting
Run Code Online (Sandbox Code Playgroud)
(请注意,这是使用 LogicLib。)
不过,这并不是一种非常巧妙的方法,如果你能避免它,那就避免吧。
| 归档时间: |
|
| 查看次数: |
7342 次 |
| 最近记录: |