请教一个DOS批处理

在一个目录下有很多文件,而我只需要拷贝其中一些文件,我已知道我所需要拷贝的文件名,现在要编一个批处理,但忘了怎么编,请教一下:
大意是这样:
for 所要拷的文件 in (aa.exe bb.exe 所要拷的多个文件 nn.exe ) 那么copy 这些文件

大约是: for %a in (aa.exe bb.exe cc.exe nn.exe ) copy %a
对吗?
还有,IN()的这个括号里最多可以有多少个文件?是不是仅仅限于一行文本的长度?

以下是NDOS命令解释器的帮助里的信息

FOR [/A[[:][-]rhsda]] %%变量IN (组) [DO] 命令
目的:在一个组中重复一个命令若干次。
命令解释器顺序设置“变量”组“组”中的每个成员然后计算并为(组)中的每个参数执行“命令”。如果(组)中参数之一含有DOS的通配符,则变量将顺序设置给磁盘上每个匹配的文件。
如果(组)中的文件名以@符号开头,则变量将被顺序设置给文件中的每一行。
/A 开关允许按文件的属性选择要处理的文件。它可以是下列项目的任意组合:
r 只读
h 隐藏
a 档案
d 目录
s 系统

  • 前缀即“不是”
    执行的命令可以是NDOS的内部命令或别名,一个外部命令或一个批处理文件。
    在COMMAND。COM时在命令行上你必须用单%号给变量名,在批处理文件中要用%%。而NDOS在两种情况下均接受%或%%。
    COMMAND.COM需要变量名为单一字符,而NDOS支持铁饭碗80个字符为变量名。
    COMMAND。COM需要单词DO在命令行中,在NDOS中它是可选的。
    注意NDOS支持嵌套的FOR语句,而COMMAND。COM却不支持。
    举例
    下面的例子在当前目录中编译C的程序,这些程序名中含有“2”或“3”:
    c:\msc> for %a in (2.c 3.c) do cl %a;
    下面的例子利用变量功能在当前目录中根据.txt文件的存在与否删除.bak文件;
    for %a in (*.txt) if exist %@name[%a].bak del %@name[%a].bak

明白了 多谢