请教大神,批量移动文件夹相关的问题
dos吧
全部回复
仅看楼主
level 2
happya😈 楼主
请教大神,共有四级文件夹,第四级文件夹下面是图片,怎么能把第三级开始的文件夹直接放在第一级下面。也就是删除第二级文件夹,下面的直接放上来。谢谢[哈哈]
2018年03月15日 10点03分 1
level 1
本人小白,纯手打,花了我一个通宵
终于搞定了,因为要考虑文件名细节问题,所以并不简单
附上代码,有点繁杂,学网络工程的,偏向敲命令既视感,大神勿喷
文件名:file-ope-mmov.bat
代码:
@echo off
echo 开始批量建立文件
setlocal enabledelayedexpansion
set disk=h:&set var1=A1&set var2=B1,B2,B3,B4&set var3=C1,C2,C3,C4&set var4=D1,D2,D3,D4&set varp=1.bmp,2.bmp,3.bmp
for %%a in (!disk!) do (for %%b in (!var1!) do (for %%c in (!var2!) do (for %%d in (!var3!) do (for %%e in (!var4!) do (for %%f in (!varp!) do set a=%%a\%%b\%%c\%%d\%%e&echo !a!)))))
echo 以上为测试建立情况,开始建立
:start
set /p input=请选择操作:1[退出]/2[暂停]/3[开始操作]/4[检查结果]/5[下一步]/6[清除文件夹]
if %input%==1 (echo exit&goto:eof) else (if %input%==2 (pause&goto:start) else (if %input%==3 (echo 确认继续&goto:step1) else (if %input%==4 (goto:step2) else (if %input%==5 (goto:step3) else (if %input%==6 (rd/s/q h:A1&cls&goto:start ))))))
cls&goto:start
:step1
for %%a in (!disk!) do (for %%b in (!var1!) do (for %%c in (!var2!) do (for %%d in (!var3!) do (for %%e in (!var4!) do (set a=%%a\%%b\%%c\%%d\%%e&md !a!&for %%f in (!varp!) do cd .>!a!\%%f)))))
:step2
echo 测试文件建立情况&dir %disk%&dir/s %disk%A1\B2\C3\D4&goto:start
:step3
echo 进行子级文件夹读写操作
echo 开始文件目录测试
set count=9&for %%a in (!disk!) do (for %%b in (!var1!) do (for %%c in (!var2!) do (for %%d in (!var3!) do (set /a count+=1&set a=%%a\%%b\%%c\%%d&echo !a!&echo %%d.!count!&echo !a!.!count!&echo %%a\%%b))))
for %%a in (!disk!) do (for %%b in (!var1!) do (for %%c in (!var2!) do echo %%a\%%b\%%c))
echo 继续操作
set count=9&for %%a in (!disk!) do (for %%b in (!var1!) do (for %%c in (!var2!) do (for %%d in (!var3!) do (set /a count+=1&set a=%%a\%%b\%%c\%%d&rename !a! %%d.!count!&move !a!.!count! %%a\%%b))))
for %%a in (!disk!) do (for %%b in (!var1!) do (for %%c in (!var2!) do rd %%a\%%b\%%c))
echo 文件迁移情况:&dir !disk!\!var1!&goto:start
:end
echo end
注意一下设置的变量值是需要根据自己实际情况进行修改的
2018年03月25日 20点03分 2
谢谢,表示完全看不懂,我都是网上直接找代码,然后复制运行[熊-大哭]你写的这个我要复制哪一部分?我找了一个大致可以用。 @echo off for /f %%a in ('dir /ad /b') do ( for /f %%b in ('dir %%a /b') do move /y %%a/%%b ./%%b )
2018年03月26日 03点03分
放在B文件夹下面,C的就能上来了,然后还需要手动删除空文件夹。不过有个问题是,C级的文件,还有一部分不是文件夹,是pdf,需要我手动剪切出来
2018年03月26日 03点03分
1