标题: [文件操作] [已解决]批处理提取每个文件夹下的第一个文件 [打印本页]
作者: F090706 时间: 2021-12-6 20:39 标题: [已解决]批处理提取每个文件夹下的第一个文件
有2000多个文件夹,如何提取每个文件夹的第一个文件,每个文件夹下的文件名称是不一样的,提取出来不用担心文件名称相同的问题.
作者: 小小菜鸟 时间: 2021-12-6 20:44
第一个文件有点模糊explorer显示的和命令获取的顺序不一样
作者: F090706 时间: 2021-12-6 20:46
回复 2# 小小菜鸟
就是文件按照文件名称默认的排序
作者: 小小菜鸟 时间: 2021-12-6 21:13
- @powershell -c "(Get-ChildItem -Path '目录' -Recurse -File | Select-Object -First 1).Name"
复制代码
试试 没有验证过
作者: F090706 时间: 2021-12-6 21:31
回复 4# 小小菜鸟
这个不太会,我只会操作bat,是个程序小白,工作中遇到的问题,还是谢谢大神了
作者: qixiaobin0715 时间: 2021-12-6 21:53
本帖最后由 qixiaobin0715 于 2021-12-6 21:56 编辑
有时文件的顺序不是你通常想的那样。你可以列举其中一个文件夹中的文件做一个说明。
最好是真实的文件名,不要随便举例。
作者: 小小菜鸟 时间: 2021-12-6 22:01
回复 5# F090706
放bat里也可以跑
作者: F090706 时间: 2021-12-6 22:03
回复 6# qixiaobin0715
比如001-0001-0001、001-0001-0001-0012、001-0001-0001-0023,这种类似的文件,我想复制出第一个文件001-0001-0001,这种三位编码的,其他的全部是四位编码
作者: qixiaobin0715 时间: 2021-12-6 22:20
本帖最后由 qixiaobin0715 于 2021-12-6 23:06 编辑
文件复制到"D:\NewFolder"中,未测试:- @echo off
- md "D:\NewFolder"
- for /f "delims=" %%a in ('dir /b /ad') do (
- pushd "%%a"
- for /f "delims=" %%i in ('dir /b /a-d^|findstr /r /b "[0-9]*-[0-9]*-[0-9]*\."') do (
- copy "%%i" "D:\NewFolder">nul
- )
- popd
- )
- pause
复制代码
作者: F090706 时间: 2021-12-6 22:48
回复 9# qixiaobin0715
我测试了一下,是把每个文件夹里的文件都复制出去了
作者: qixiaobin0715 时间: 2021-12-6 23:03
回复 10# F090706
已修改
作者: F090706 时间: 2021-12-6 23:10
回复 11# qixiaobin0715
成功了,多谢大神
作者: qixiaobin0715 时间: 2021-12-7 10:29
如果文件名像你列举的那样规律,可以将代码第5行括号内的修改为下面形式可能效率上更好些:- ('dir /b /a-d ???-????-????.*')
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |