windows使用通配符批量移动文件的行为很奇怪



hi我有一个包含图像的文件夹,当我运行"将C:\test\from\007*C:\test\to\"时以009开头的文件也被复制:

C: \test\from>将C:\test\from\007*.jpg C:\test\移动到\

C: \test\ from \0007014_1112017.JPG

C: \test\from\009408_1112017_12.JPG

C: \test\ from \009086_1112017_5.JPG

C: \test\ from \009437_1112017_4.JPG

C: \test\ from \009429_1112017_5.JPG

C: \test\from\009120_1112017_4.JPG

C: \test\ from \009408_1112017_2.JPG

7 file(s) moved.

怎么会这样?

默认情况下,文件有一个"长名称"和一个"短名称"。

您的move将移动与您的掩码匹配的文件,该掩码具有名称。

您可以使用dir /x显示文件的简称

您的解决方案是使用FINDSTR来匹配dir命令的实际输出。dir命令的输出将始终输出实际文件名,而不是短文件名。

FOR /F "delims=" %%G in ('dir /b /a-d 007*.jpg^|findstr /r /c:"^007.*.jpg"') do move "%%G" "C:testto"

最新更新