dir /ad /b 获取 E:\测试 文件夹下子文件夹名称,粘贴到 EXCEL
在 Excel 中写 从 E:\测试\新建文件夹1 移动文件到 E:\测试\ 的命令,move E:\测试\新建文件夹1\1.txt E:\测试\,包存为 bat 执行
删掉多余的文件 本帖最后由 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=.\ 这个就是批处理存放的当前目录,你可以根据自己的目录名更改
至于你说的要移子目录里跟目录名相同的文件,这个希望有大虾能提示一下怎么把目录名放到循环里
另外说个题外话,一般求助贴最好发个悬赏,这样大家会更有动力帮你,你的问题也能尽快得到解决
有用的话麻烦评分点赞给个星哈
个人觉得使用类似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]