标题: [文本处理] [已解决]批处理取每个文件夹第N张图片 N=我可以自己打上数字 例如2 [打印本页]
作者: swanseabrian 时间: 2021-11-24 09:11 标题: [已解决]批处理取每个文件夹第N张图片 N=我可以自己打上数字 例如2
本帖最后由 swanseabrian 于 2021-11-24 13:57 编辑
取每个文件夹第N张图片 N=我可以自己打上数字 例如2
在大量文件夹里遍历提取指定第几张, 并复制到指定文件夹,
这个可以做到吗?
作者: qixiaobin0715 时间: 2021-11-24 10:55
用于当前文件夹下第一层子文件夹,未经测试:- @echo off
- set N=2
- set DstFolder=D:\abc
- for /d %%i in (*) do (
- pushd "%%i"
- for /f "tokens=2 delims=:" %%a in ('dir /b /a-d *.txt^|findstr /n .*^|findstr ^%N%:') do copy "%%a" "%DstFolder%"
- popd
- )
- pause
复制代码
作者: swanseabrian 时间: 2021-11-24 11:05
回复 2# qixiaobin0715
是图片,不是txt ,这个倒是好改,
图片名命是中文 ,不是编号 呀,你这样找%N%,不行的吧
作者: qixiaobin0715 时间: 2021-11-24 11:40
本帖最后由 qixiaobin0715 于 2021-11-24 14:24 编辑
没说是编号,N表示查找到的文件夹中的第2个文件。
你可以把copy改为:echo,%%a查看一下。
作者: swanseabrian 时间: 2021-11-24 11:52
- @echo off&setlocal enabledelayedexpansion
- set N=2
- set x=0
- set DstFolder=D:\abc
- for /d %%i in (*) do (
- pushd "%%i"
- for /f "delims=:" %%a in ('dir /b /a-d *.jpg') do (
- set /a x=x+1
- if !x! equ !N! (
- echo "%%a"
- copy "%%a" "%DstFolder%")
- popd
- ))
- pause
复制代码
回复 4# qixiaobin0715
上面是我的代码,我echo 没问题,
可是复制的时候说,
系统找不到指定文件,这是啥情况
作者: qixiaobin0715 时间: 2021-11-24 12:05
set x=0 应当放在for /d 循环内
作者: swanseabrian 时间: 2021-11-24 12:16
回复 6# qixiaobin0715
放了
复制的时候还 是系统找不到指定文件
作者: qixiaobin0715 时间: 2021-11-24 12:53
这样:- @echo off&setlocal enabledelayedexpansion
- set N=2
- set DstFolder=D:\abc
- for /d %%i in (*) do (
- set x=0
- pushd "%%i"
- for /f "delims=:" %%a in ('dir /b /a-d *.jpg') do (
- set /a x=x+1
- if !x! equ !N! (
- echo "%%a"
- copy "%%a" "%DstFolder%")
- )
- popd
- )
- pause
复制代码
回复 7# swanseabrian
作者: qixiaobin0715 时间: 2021-11-24 12:55
popd位置有问题
作者: swanseabrian 时间: 2021-11-24 13:11
回复 9# qixiaobin0715
还真是
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |