[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

有2000多个文件夹,如何提取每个文件夹的第一个文件,每个文件夹下的文件名称是不一样的,提取出来不用担心文件名称相同的问题.

第一个文件有点模糊explorer显示的和命令获取的顺序不一样

TOP

回复 2# 小小菜鸟


    就是文件按照文件名称默认的排序

TOP

  1. @powershell -c "(Get-ChildItem -Path '目录' -Recurse -File | Select-Object -First 1).Name"
复制代码
试试 没有验证过

TOP

回复 4# 小小菜鸟


    这个不太会,我只会操作bat,是个程序小白,工作中遇到的问题,还是谢谢大神了

TOP

本帖最后由 qixiaobin0715 于 2021-12-6 21:56 编辑

有时文件的顺序不是你通常想的那样。你可以列举其中一个文件夹中的文件做一个说明。
最好是真实的文件名,不要随便举例。

TOP

回复 5# F090706


    放bat里也可以跑

TOP

回复 6# qixiaobin0715


    比如001-0001-0001、001-0001-0001-0012、001-0001-0001-0023,这种类似的文件,我想复制出第一个文件001-0001-0001,这种三位编码的,其他的全部是四位编码

TOP

本帖最后由 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
复制代码

TOP

回复 9# qixiaobin0715


    我测试了一下,是把每个文件夹里的文件都复制出去了

TOP

回复 10# F090706
已修改
1

评分人数

    • F090706: 乐于助人,又耐心技术 + 1

TOP

回复 11# qixiaobin0715


    成功了,多谢大神

TOP

如果文件名像你列举的那样规律,可以将代码第5行括号内的修改为下面形式可能效率上更好些:
  1. ('dir /b /a-d ???-????-????.*')
复制代码

TOP

返回列表