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

Windows批处理如何实现交互输入扩展名后搜索文件复制到指定目录

解决方案

这个需求完全可以实现,仅靠Windows批处理原生语法就能完成,不需要额外工具。

核心改动逻辑

  • 用批处理原生的set /p命令实现交互输入,运行时提示用户输入要搜索的文件扩展名,同时增加空输入校验,避免用户直接回车导致脚本运行异常
  • 替换原脚本硬编码的mama.jpg匹配规则,直接用dir命令的通配符筛选对应后缀的文件,比原脚本用管道+find的匹配方式效率更高,也不会出现文件名包含关键词就被误匹配的问题
  • 把目标存储文件夹的创建判断移到循环外部,不需要每找到一个文件就重复判断一次文件夹是否存在,减少冗余操作
  • 统一路径分隔符为Windows原生反斜杠,补全xcopy目标路径末尾的分隔符,避免xcopy弹出“目标是文件还是目录”的冗余提示

可直接运行的修改后代码

@echo off
chcp 65001 >nul
set "destination=%CD%"
set "target_ext="

:: 接收用户输入的扩展名
:input_retry
set /p "target_ext=请输入要搜索的目标文件扩展名(如png、cr2、jpg,无需输入前缀点号):"
if not defined target_ext (
    echo 输入不可为空,请重新输入
    goto input_retry
)
:: 自动兼容用户误输入的点号前缀
if "%target_ext:~0,1%"=="." set "target_ext=%target_ext:~1%"

:: 提前创建存储复制文件的目标文件夹
if not exist "%destination%\Skopiowane_zdjecia" md "%destination%\Skopiowane_zdjecia"

:: 递归遍历所有匹配后缀的文件并复制
for /f "delims=" %%a in ('dir /b /s "*.%target_ext%"') do (
    xcopy /y "%%a" "%destination%\Skopiowane_zdjecia\"
)

echo 所有.%target_ext%格式文件已复制完成,按任意键退出
pause >nul

使用注意事项

  • 把脚本放在要搜索的根目录下双击运行即可,按照提示输入对应扩展名回车就会自动执行搜索复制
  • 脚本会自动递归遍历当前目录下所有层级的子文件夹,把匹配后缀的文件全部复制到同目录下的Skopiowane_zdjecia文件夹中
  • 如果输入扩展名时不小心带了前缀点号(比如输入.png),脚本会自动做格式修正,不会出现匹配错误

内容的提问来源于stack exchange,提问作者Jack Godorowski

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 08:03:28