移动文件过滤器(Windows)

时间:2016-05-23 14:04:37

标签: windows file batch-file filter

我在创建特定过滤器以在Windows中移动文件时遇到问题。问题是,我有一个名为 ADB.inp 的文件,基于他,系统将创建名为 ADB001.inp ADB002的其他文件。 inp ADB976.inp 等,我需要将这些文件移动到另一个文件夹,但保留文件夹中的原始 ADB.inp

另一个观察结果是 ADB.inp 需要与创建文件的文件夹相同。这样我就无法制作像

这样的过滤器
  

*。inp

  

ADB *

  

ADB0 *

任何人都知道可以过滤这些文件的方式吗?

1 个答案:

答案 0 :(得分:0)

Windows批处理文件名屏蔽功能限制为*(任何0个或更多字符)或?(0或1个字符,.除外)。因此,使用单个MOVE命令无法完成。

最简单的解决方案是使用两个MOVE命令 - 一个用于移动所有内容,另一个用于将模板移回原始位置。

假设您当前的目录是所有文件的起始位置:

move adb*.inp newLocation
move newLocation\adb.inp .

另一种选择是暂时隐藏模板,但这需要三个步骤:

attrib +h adb.inp
move adb*.inp newLocation
attrib -h adb.inp

如果模板必须始终保留(取消隐藏)在正确的文件夹中,那么您将不得不迭代文件并逐个移动它们:

for %%F in (adb*.inp) do if /i "%%F" neq adb.inp move "%%F" newLocation

for /f "delims=" %%F in ('dir /a-d /b adb*.inp^|findstr /lix adb.inp') do move "%%F" newLocation