批处理文件以检查具有相同名称的文件

时间:2017-03-23 10:22:24

标签: batch-file

我有一个文件夹,其中每个存档文件都有一个具有相同名称的对应图像文件。如果按文件名排序,则文件夹的结构为:

  • 文件夹
    • File1.zip
    • File1.jpg
    • File2.zip
    • File2.jpg
    • File3.zip (此文件应移至子文件夹)
    • File4.zip
    • File4.jpg

如果存档文件没有其图像文件,则应将其移动到另一个文件夹。

一个问题是并非所有存档文件都是.zip,而且.rar或7z并非所有图像都是.jpg而且.jpeg或.png

如果你能指出我的解决方案会很棒,因为我是一名网页设计师而且.bat文件并不是我的域名。

1 个答案:

答案 0 :(得分:0)

虽然[SO]不是一个脚本编写服务,但我确实发现该任务非常重要 将以下批次中第2 + 3行的修补程序调整到您的环境中。

@Echo off&SetLocal 
PushD "X:\folder\to\check"
Set "MoveToFolder=Y:\move\arc\to"
For /f "delims=" %%Z in ('Dir /B *.zip *.rar *.7z') Do (
  Set "FoundPic="
  For /f "delims=" %%P in (
    'Dir /B "%%~nZ*" ^| findstr /i "\.jpg$ \.jpeg$ \.png$" '
  ) Do Set FoundPic=yes
  If not defined FoundPic echo Move "%%Z" "%MoveToFolder%"
)
PopD