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

时间:2018-03-26 03:23:41

标签: batch-file

我知道我可以使用

move %~dp0\Microsoft*.dll %~dp0\ObjectFolder
move %~dp0\Microsoft*.pdb %~dp0\ObjectFolder

dllpdb文件移至另一个文件夹。

我想问一下可以将两个条件合并在一行吗?比如[pdb,dll]

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

1 个答案:

答案 0 :(得分:4)

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

我能想到的唯一方法就是使用for loop

for %%I in ("%~dp0Microsoft*.dll" "%~dp0Microsoft*.pdb") do move "%%~I" "%~dp0ObjectFolder"

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

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

注意

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

To move one or more files:
MOVE [/Y | /-Y] [drive:][path]filename1[,...] destination