Batch file 批处理-按多文件名模式/条件移动文件

Batch file 批处理-按多文件名模式/条件移动文件,batch-file,Batch File,我知道我可以用 move %~dp0\Microsoft*.dll %~dp0\ObjectFolder move %~dp0\Microsoft*.pdb %~dp0\ObjectFolder 将dll和pdb文件移动到另一个文件夹 我想问,这两个条件是否可以合并到一行中?例如类似于[pdb,dll]: move %~dp0\Microsoft*.[pdb,dll] %~dp0\ObjectFolder 无法将多个搜索掩码放入一个命令中 我能想到的将所有内容放在一行的唯一方法是使用: 对于

我知道我可以用

move %~dp0\Microsoft*.dll %~dp0\ObjectFolder
move %~dp0\Microsoft*.pdb %~dp0\ObjectFolder
dll
pdb
文件移动到另一个文件夹

我想问,这两个条件是否可以合并到一行中?例如类似于
[pdb,dll]

move %~dp0\Microsoft*.[pdb,dll] %~dp0\ObjectFolder

无法将多个搜索掩码放入一个命令中

我能想到的将所有内容放在一行的唯一方法是使用:

对于(“%$dp0Microsoft*.dll”“%~dp0Microsoft*.pdb”)中的%%I,请移动“%%~I”“%~dp0ObjectFolder”

作为替代方案,可以使用,它接受多个文件名或模式:

robocopy“%~dp0.”“%~dp0ObjectFolder”“Microsoft*.dll”“Microsoft*.pdb”/MOV

笔记 的帮助文本似乎是错误的,它实际上不接受以逗号分隔的源文件列表(当目标是目录时):

要移动一个或多个文件:
移动[/Y |/-Y][drive:[path]filename1[,…]目标

请注意,
%~dp0
在预处理期间由窗口命令解释器替换,批处理文件的路径始终以反斜杠结尾。因此,不要在批处理文件的代码中的每个
%~dp0
后添加额外的反斜杠。@Mofi,我同意,没有必要添加额外的
\
;但这也没有什么坏处,因为
D:\Test\data
指向的位置与
D:\Test\\data
指向的位置相同…@aschipfl Windows在访问文件系统之前自动修复格式错误的路径是正确的,我认为,因为Windows Nt4在内部使用内核函数。但最好避免形成错误的路径,特别是在像这里这样容易的情况下。我更喜欢批处理文件中格式良好的路径,以防输出它们或将它们传递给不像现在的Windows内核那样具有路径语法容错性的应用程序。