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

[文件操作] BAT求助,在文件夹内有JPG文件多个和一个空文件夹,想把里边的JPG文件放入空文件夹内

[复制链接]
发表于 2017-2-18 19:53:26 | 显示全部楼层 |阅读模式
BAT求助,在文件夹内有JPG文件多个和一个空文件夹,想把里边的JPG文件放入空文件夹内,这样的文件夹有上千个。感谢各位指点
 楼主| 发表于 2017-2-18 20:45:53 | 显示全部楼层
有没有大神帮忙下 不胜感激
发表于 2017-2-18 21:18:04 | 显示全部楼层
问题不够具体,描述也没有例子

大概思路:
1、for遍历包含jpg文件的目录;
2、move移动jpg文件到目标目录

需要考虑的是如何获取目标目录
发表于 2017-2-18 21:34:16 | 显示全部楼层
回复 1# lxch5434


    这一千多个文件夹是否在同一个目录?
    这些文件夹下是否除了jpg图片之外就只有唯一一个空文件夹?
发表于 2017-2-19 19:21:50 | 显示全部楼层
假设你的jpg所在目录为A001~A100(他们内有若干jpg文件,和唯一的空文件夹),他们放在D:\ds下。
在D:\ds目录下编写如下bat并运行

FOR /F "delims==" %%i IN ('dir /b *.') DO (
cd "%%i"
dir /b *. > empdir.txt
set /p d= < empdir.txt
move *.jpg %d%\
del empdir.txt
cd ..
)
发表于 2017-2-20 20:56:59 | 显示全部楼层
回复 5# liero1982


    用临时文件可能效率比较低,用 for /f + dir 获取文件夹名称估计能快点。
 楼主| 发表于 2017-2-20 22:21:25 | 显示全部楼层
这是别人给写的 就是要这个功能6楼朋友的没有试
@echo off&setlocal enabledelayedexpansion
cd /d "%~dp0"
for /f "delims=" %%a in ('dir /b/ad *') do (
  cd /d "%~dp0%%a"
  for /f "delims=" %%b in ('dir /b/ad *') do set "_folder=%%b"
  move /y *.jpg "%~dp0%%a\!_folder!"
  cd /d "%~dp0"
)
exit
我不懂代码 各位赐教
 楼主| 发表于 2017-2-20 22:24:36 | 显示全部楼层
回复 4# taofan712


    都在一个目录,文件夹有一个,只有jpg,做地籍调查一个测区万把个文件夹 代码朋友写的 我外行
 楼主| 发表于 2017-2-20 22:28:26 | 显示全部楼层
回复 5# liero1982


    试试你的看看可以达到一样效果不
 楼主| 发表于 2017-2-20 22:29:31 | 显示全部楼层
回复 5# liero1982


    试试你的看可以达到同样效果不
发表于 2017-2-20 22:43:47 | 显示全部楼层
回复 7# lxch5434


    dir /b/ad * 这里的星号可以省略
发表于 2017-2-21 10:40:01 | 显示全部楼层
回复 8# lxch5434
  1. @echo off
  2. for /f "delims=" %%a in ('dir /ad /b') do (
  3.         pushd "%%~a"
  4.         for /f "delims=" %%b in ('dir /ad /b') do (
  5.                 move  /y *.jpg "%%~b"
  6.         )
  7.         popd
  8. )
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 14:46 , Processed in 0.019876 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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