Hatton1.jpg
获得了从到的彩色照片列表,Hatton72.jpg
每张照片都有一张相同的黑白照片,名称Hatton1-2.jpg
通过Hatton72-2.jpg
有没有办法将 -2 文件剥离到单独的目录中?
答案1
使用move
带有适当参数的命令:
移动 *-2.jpg c:\somefolder
答案2
这有点棘手,因为文件名很短:-
- 为了与只能处理短文件名的旧程序保持某种兼容性,Windows 为每个较长的文件名提供了一个备用 8.3 名称。
- 8.3 名称的格式为
*~N.???
,其中*
是文件名的开头,而是N
一个整数(很少有冲突) - 请参阅dir /x
。 - 不幸的是,搜索
*~2.*
会找到一些短名称以及带有*~2.*
长名称的所需文件。
在 中cmd
,转到包含文件的目录:您可以列出要移动的文件:
dir /b | findstr "~2.jpg"
理想情况下,您应该能够使用:
for /f %f in ('dir /b | findstr "~2.jpg"') do move "%f" NewDirPath
不幸的是,您不能在循环中的嵌入命令中使用管道for
,因此您需要使用两个命令(或三个命令来删除临时文件):
dir /b > Files.lst
for /f %f in ('findstr "~2.jpg" Files.txt') do move "%f" NewDirPath
del Files.lst
这不是一个非常优雅的解决方案,但你可能只需要做一次。如果你需要重复执行此操作,请将命令放入批处理文件中,并确保将%
循环变量加倍:
...
for /f %%f in ('findstr "~2.jpg" Files.txt') do move "%%f" NewDirPath
...
答案3
使用 PowerShell 您可以使用Get-ChildItem
和...一起Move-item
。
它看起来像这样:
Get-ChildItem -Filter '*-2.jpg' -Recurse | %{Move-Item $_ C:\Target}
我没有测试该代码,但它应该非常相似。仅使用常规 Windows 搜索并拖动文件也可能有效。