找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 20663|回复: 12

[文件操作] [已解决]批处理提取每个文件夹下的第一个文件

[复制链接]
发表于 2021-12-6 20:39:19 | 显示全部楼层 |阅读模式
有2000多个文件夹,如何提取每个文件夹的第一个文件,每个文件夹下的文件名称是不一样的,提取出来不用担心文件名称相同的问题.
发表于 2021-12-6 20:44:47 | 显示全部楼层
第一个文件有点模糊explorer显示的和命令获取的顺序不一样
 楼主| 发表于 2021-12-6 20:46:51 | 显示全部楼层
回复 2# 小小菜鸟


    就是文件按照文件名称默认的排序
发表于 2021-12-6 21:13:41 | 显示全部楼层
  1. @powershell -c "(Get-ChildItem -Path '目录' -Recurse -File | Select-Object -First 1).Name"
复制代码
试试 没有验证过
 楼主| 发表于 2021-12-6 21:31:58 | 显示全部楼层
回复 4# 小小菜鸟


    这个不太会,我只会操作bat,是个程序小白,工作中遇到的问题,还是谢谢大神了
发表于 2021-12-6 21:53:55 | 显示全部楼层
本帖最后由 qixiaobin0715 于 2021-12-6 21:56 编辑

有时文件的顺序不是你通常想的那样。你可以列举其中一个文件夹中的文件做一个说明。
最好是真实的文件名,不要随便举例。
发表于 2021-12-6 22:01:10 | 显示全部楼层
回复 5# F090706


    放bat里也可以跑
 楼主| 发表于 2021-12-6 22:03:38 | 显示全部楼层
回复 6# qixiaobin0715


    比如001-0001-0001、001-0001-0001-0012、001-0001-0001-0023,这种类似的文件,我想复制出第一个文件001-0001-0001,这种三位编码的,其他的全部是四位编码
发表于 2021-12-6 22:20:13 | 显示全部楼层
本帖最后由 qixiaobin0715 于 2021-12-6 23:06 编辑

文件复制到"D:\NewFolder"中,未测试:
  1. @echo off
  2. md "D:\NewFolder"
  3. for /f "delims=" %%a in ('dir /b /ad') do (
  4.     pushd "%%a"
  5.     for /f "delims=" %%i in ('dir /b /a-d^|findstr /r /b "[0-9]*-[0-9]*-[0-9]*\."') do (
  6.         copy "%%i" "D:\NewFolder">nul
  7.     )
  8.     popd
  9. )
  10. pause
复制代码
 楼主| 发表于 2021-12-6 22:48:47 | 显示全部楼层
回复 9# qixiaobin0715


    我测试了一下,是把每个文件夹里的文件都复制出去了
发表于 2021-12-6 23:03:55 | 显示全部楼层
回复 10# F090706
已修改

评分

参与人数 1技术 +1 收起 理由
F090706 + 1 乐于助人,又耐心

查看全部评分

 楼主| 发表于 2021-12-6 23:10:37 | 显示全部楼层
回复 11# qixiaobin0715


    成功了,多谢大神
发表于 2021-12-7 10:29:32 | 显示全部楼层
如果文件名像你列举的那样规律,可以将代码第5行括号内的修改为下面形式可能效率上更好些:
  1. ('dir /b /a-d ???-????-????.*')
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 17:58 , Processed in 0.033351 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表