You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用cmd对比两个文件夹文件名并复制不匹配文件至新文件夹?

用CMD对比文件夹并移动/复制不匹配文件

场景示例

文件夹1:

Filename1.pdf
Filename2.pdf
Filename3.tiff
Filename4.jpg

文件夹2:

Filename1.pdf
Filename2.pdf
Filename3.tiff
Filename4.jpg
Filename5.pdf
Filename6.jpg

目标:将文件夹2中独有的Filename5.pdf、Filename6.jpg移动/复制到文件夹3


操作步骤

1. 定义文件夹路径

先在CMD里设置三个文件夹的绝对路径(替换成你自己的实际路径,路径含空格时必须加引号):

set "Folder1=C:\你的文件夹1路径"
set "Folder2=C:\你的文件夹2路径"
set "Folder3=C:\你的目标文件夹3路径"

如果目标文件夹3还没创建,可先执行这句自动创建(已存在则忽略错误):

mkdir "%Folder3%" 2>nul

2. 复制不匹配文件到目标文件夹

执行以下命令,将文件夹2中独有的文件复制到文件夹3:

for %%f in ("%Folder2%\*") do if not exist "%Folder1%\%%~nxf" copy "%%f" "%Folder3%\"
  • 说明:%%~nxf用于提取文件的完整文件名(含扩展名),if not exist判断该文件是否在文件夹1中存在,不存在则执行复制。

3. 移动不匹配文件到目标文件夹

如果需要移动而非复制,把命令里的copy换成move即可:

for %%f in ("%Folder2%\*") do if not exist "%Folder1%\%%~nxf" move "%%f" "%Folder3%\"

4. 反向查找(文件夹1中独有的文件)

要是你需要找出文件夹1里有、但文件夹2没有的文件,只需交换Folder1和Folder2的位置:

for %%f in ("%Folder1%\*") do if not exist "%Folder2%\%%~nxf" copy "%%f" "%Folder3%\"

注意事项

  • 以上命令是批处理脚本格式(保存成.bat文件双击运行),如果直接在CMD窗口中输入,需把变量里的%%f改成%f,比如:
    for %f in ("C:\你的文件夹2路径\*") do if not exist "C:\你的文件夹1路径\%~nxf" copy "%f" "C:\你的目标文件夹3路径\"
    

内容的提问来源于stack exchange,提问作者Mr UK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 20:54:25