小编Wor*_*mbo的帖子

XCOPY 无法读取 /EXCLUDE 文件

我正在尝试为要发布源代码的 Unreal Tournament 2004 mod 编写构建脚本批处理文件。此脚本包含对带有 /EXCLUDE 参数的 XCOPY 调用,如下所示:

XCOPY "%ProjectFolder%*" "%BuildFolder%" /S /C /Y /EXCLUDE:"%ProjectFolder%Build\CopyExcludes.cfg"
Run Code Online (Sandbox Code Playgroud)

出于某种原因,该命令告诉我它无法读取 CopyExcludes.cfg 文件。我该如何解决?

在批处理文件中,%ProjectFolder% 是源文件的基本文件夹,包括尾部反斜杠。%BuildFolder% 是 UT2004 文件夹中编译器期望文件所在的子文件夹。我运行批处理文件ECHO ON以查看扩展变量:

C:\UT2004>XCOPY "C:\UT2004\EvenMatch\*" "C:\UT2004\EvenMatchV1" /S /C /Y /EXCLUD
E:"C:\UT2004\EvenMatch\Build\CopyExcludes.cfg"
Datei "C:\UT2004\EvenMatch\Build\CopyExcludes.cfg" kann nicht gelesen werden.

0 Datei(en) kopiert
Run Code Online (Sandbox Code Playgroud)

(不要管命令中明显的换行符,这只是 80 个字符后的 CMD 窗口硬换行文本。)

奇怪的是,我可以将命令放在type "%ProjectFolder%Build\CopyExcludes.cfg"XCOPY 命令之前和之后,它可以正确显示批处理文件中两个位置的文件内容:

C:\UT2004>type "C:\UT2004\EvenMatch\Build\CopyExcludes.cfg"
.svn
.bak
.git
.cfg
#
~

C:\UT2004>XCOPY "C:\UT2004\EvenMatch\*" "C:\UT2004\EvenMatchV1" /S /C /Y /EXCLUD
E:"C:\UT2004\EvenMatch\Build\CopyExcludes.cfg"
Datei "C:\UT2004\EvenMatch\Build\CopyExcludes.cfg" kann nicht gelesen werden.

0 Datei(en) kopiert …
Run Code Online (Sandbox Code Playgroud)

windows-7 environment-variables xcopy batch-file

9
推荐指数
1
解决办法
7161
查看次数