382702138 发表于 2020-2-15 22:47

loveLYF 发表于 2020-2-15 23:05

make   感觉我也需要

382702138 发表于 2020-2-15 23:09

JieW_L 发表于 2020-2-15 23:17

用 Everything 搜索 E:\测试 文件夹下所有文件 *.txt,全部复制到 E:\测试\新建文件夹1
dir /ad /b 获取 E:\测试 文件夹下子文件夹名称,粘贴到 EXCEL
在 Excel 中写 从 E:\测试\新建文件夹1 移动文件到 E:\测试\ 的命令,move E:\测试\新建文件夹1\1.txt E:\测试\,包存为 bat 执行
删掉多余的文件

382702138 发表于 2020-2-15 23:23

xiaotuge 发表于 2020-2-15 23:25

qaz003 发表于 2020-2-16 04:02

本帖最后由 qaz003 于 2020-2-16 04:08 编辑

很久没玩BAT了,很少用循环以前一直都是简单的列菜单然后直接goto相应位置
花了半小时度娘重温了一下还是一头雾水,下面的语句可以遍历出当前目录
下的子目录里的文件,并且把它们移动到当前的目录里
@echo off & setlocal enabledelayedexpansion
echo 提示:请在子目的上一层目录里运行!!
pause
set fd=.\
for /f "delims=" %%a in ('dir /ad /b /s %fd%') do (
set cp="%%~a"
for /f "delims=" %%i in ('dir /ad /b !cp! ^| find /v /c ""') do (set /a cnt=%%i)
if {!cnt!}=={0} (
    set up="%%~da%%~pa"
move !cp!\*.* !up! 2>nul
rd /s /q !cp! 2>nul
)
)
endlocal & @echo on
pause

set fd=.\   这个就是批处理存放的当前目录,你可以根据自己的目录名更改
至于你说的要移子目录里跟目录名相同的文件,这个希望有大虾能提示一下怎么把目录名放到循环里
另外说个题外话,一般求助贴最好发个悬赏,这样大家会更有动力帮你,你的问题也能尽快得到解决
有用的话麻烦评分点赞给个星哈

simon6902 发表于 2020-2-16 08:07

个人觉得使用类似python之类的脚本语言,比bat批处理好处理多了,我现在都基本不用批处理。楼主可以考虑[]
base_dir="c:\\test\\"
folders = ['文件夹1','文件夹2']
dest_dir="d:\\dest\\"
for temp in folders:
temp_dir=base_dir + temp
cmd="copy %s %s" % (temp_dir, dest_dir)
os.cmd()
页: [1]
查看完整版本: 如何用bat批量移动文件夹内与文件夹同名的文件到指定文件夹