加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – 在NSIS中复制文件

发布时间:2020-12-14 05:29:42 所属栏目:Windows 来源:网络整理
导读:我使用以下命令来复制文件. 设置输出路径后…… File "Documents*" 这个动作完美无瑕.在…之前处理文档目录中的文件没有问题. 如果目录中存在现有文件(具有不同名称)的副本,则无论名称如何,都会复制文件的第一个实例. 如何制作它以便复制所有文件,无论它们
我使用以下命令来复制文件.

设置输出路径后……

File "Documents*"

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

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

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

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

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

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

应用“文件”命令时,为了将文件解压缩到当前输出路径,仅提取文件的第一个实例(复制或原始…但不是两者).再次,我很抱歉这令人困惑,但这是我第一次与NSIS合作.我需要提取所有文件.

解决方法

最简单的方法是将它放在您创建的不同目录中.然后,如果你需要担心重命名(因为评论员已经注意到你的问题没有多大意义),你可以逐个文件地攻击它.

# Extract the files to a directory which can't exist beforehand
CreateDirectory $PLUGINSDIRextracting
SetOutPath $PLUGINSDIRextracting
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 $PLUGINSDIRextracting

(注意那是使用LogicLib.)

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读