[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 【已解决】批处理通过文件名列表对文件操作,生成失败清单出错

基本情况
我在本论坛上大侠给出的BAT基础上,摸索着写了下面的批处理。
第一步是根据各个文件名列表(TXT)新建子目录(用各文件名列表它的文件名);
第二步是根据各文件名列表里的各行,将MP4文件进行重命名及移入相应的子目录文件夹内。 如果上述失败,则生成失败清单文件(TXT)。

试验情况
1、为了谨慎起见,我先用2个文件名列表在其它文件夹内来试,能在达到目的,没有问题, 然后才动手进行操作。              
2、出现下列问题后,我再用4个文件名列表在其它文件夹内试,也能达到目的,没有问题。再多数量就没有再试了

出现的问题
1、对同一个文件名列表,会生成两个失败清单TXT(比如对应着文件名列表A,有“A合集移动失败”及“A合集移动失败合集移动失败”2个清单)。
2、上述三个TXT文件,内容都是一样的。
3、新建的子目录文件夹确是生成了。我大致浏览了其中几个,相应文件都实际成功移入了----但是还是有上述三个文件。
(MP4文件很多,有上千个;相应的文件名列表及生成的子目录也很多,有20多个吧;我没有一一查验)

求助:
现在是失败清单不OK,我估计是BAT的循环出问题了。
被动的是,我不知道有哪些是成功操作的,哪些是失败的。

所以附上代码,请各位高手不吝指导!
感谢!
  1. @echo off
  2. rem 批处理保存为ansi编码格式
  3. cd /d "%~dp0"
  4. set Ext=*.txt
  5. for %%i in (%Ext%) do (
  6. if not exist "%%~ni\" md "%%~ni\"
  7. for /f "useback delims=" %%a in ("%%i") do (
  8. for /f "tokens=* delims=1234567890 " %%x in ("%%a") do (
  9. if exist "%%x.mp4" (
  10. ren "%%x.mp4" "%%a.mp4"
  11.                         move "%%a.mp4" "%%~ni\"
  12. ) else (
  13. >>"%%~ni合集移动失败.txt" echo %%a
  14. )
  15. )
  16. )
  17. )
  18. pause
复制代码
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 7# 77七

多谢提供建议!

TOP

回复 3# annwayili


  for %%a in (*.txt) 边列举边处理,和排序有关系,可以改用for /f +dir 一次性列举完

  1. cd.>2.txt
  2. cd.>3.txt
  3. for %%a in (*.txt) do (
  4. cd.>1.txt
  5. echo %%a
  6. )
  7. 结果
  8. 2.txt
  9. 3.txt
  10. cd.>2.txt
  11. cd.>3.txt
  12. for %%a in (*.txt) do (
  13. cd.>4.txt
  14. echo %%a
  15. )
  16. 结果
  17. 2.txt
  18. 3.txt
  19. 4.txt
复制代码
1

评分人数

bat小白,请多指教!谢谢!

TOP

回复 4# Batcher

谢谢!

看来我是踩中这个坑了

TOP

回复 2# ShowCode

测试了,非常好!再次感谢!

TOP

回复 1# annwayili


参考for命令教程第8页:
http://bbs.bathome.net/thread-31727-1-1.html

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 2# ShowCode

非常感谢!我等一下恢复原状试一试这个方法。

不过,纳闷的是,为什么我用4个或是2个文件列表测试时,没出问题呢?

TOP

回复 1# annwayili


合集移动失败.txt
改成:
合集移动失败.log
1

评分人数

测试代码之前请做好备份

TOP

返回列表