windows – 在NSIS中复制文件

前端之家收集整理的这篇文章主要介绍了windows – 在NSIS中复制文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用以下命令来复制文件.

设置输出路径后……

File "Documents\*"

这个动作完美无瑕.在…之前处理文档目录中的文件没有问题.

如果目录中存在现有文件(具有不同名称)的副本,则无论名称如何,都会复制文件的第一个实例.

如何制作它以便复制所有文件,无论它们是否是其他文件的副本?

更正/更好的解释(也许)

我为这种困惑道歉.请允许我尝试重述这个问题.使用FILE命令提取文件是此处的问题.这些文件由原始文件和相同文件的副本组成(仅使用不同的名称).

示例:MyDocument.txt和copyOfMyDocument.txt等等.

应用“文件”命令时,为了将文件解压缩到当前输出路径,仅提取文件的第一个实例(复制或原始…但不是两者).再次,我很抱歉这令人困惑,但这是我第一次与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

(注意那是使用LogicLib.)

这不会成为一种非常巧妙的方式,如果你能避免它,那就行了.

猜你在找的Windows相关文章