Board logo

标题: [文件操作] [已解决]批处理自动创建文件并分类 [打印本页]

作者: xugouwenrou    时间: 2015-2-3 14:02     标题: [已解决]批处理自动创建文件并分类

本帖最后由 xugouwenrou 于 2015-2-11 00:10 编辑

我有很多后缀为NC的文本,比如D10-A1.NC,能否做个批处理自动创建相对应文件夹并将这些文本分类移进新的文件夹中。
比如D10-A1.NC   自动创建文件“A面”并将文本移入
      D10-B1.NC   自动创建文件“B面”并将文本移入
      D10-C1.NC   自动创建文件“C面”并将文本移入
      D10-D1.NC   自动创建文件“D面”并将文本移入
      D10-BM1.NC 自动创建文件“底面”并将文本移入
      D10-FM1.NC 自动创建文件“底面”并将文本移入
      D10-L1.NC    自动创建文件“F面”并将文本移入
      D10-EP1.NC  自动创建文件“R面”并将文本移入
以上8中文本名只有-之后数字之前的名字是固定不变的,如果没有以上特征,则跳过不创建新文件夹
求助大神帮帮忙,谢谢
作者: DAIC    时间: 2015-2-3 14:26

  1. @echo off
  2. md "A面" "B面" "C面" "D面" "底面" "底面" "F面" "R面" 2>nul
  3. move /y *-BM*.NC "底面"
  4. move /y *-FM*.NC "底面"
  5. move /y *-L*.NC "F面"
  6. move /y *-EP*.NC "R面"
  7. move /y *-A*.NC "A面"
  8. move /y *-B*.NC "B面"
  9. move /y *-C*.NC "C面"
  10. move /y *-D*.NC "D面"
复制代码

作者: xugouwenrou    时间: 2015-2-3 16:48

本帖最后由 xugouwenrou 于 2015-2-3 17:46 编辑

回复 2# DAIC
谢谢大神指点,不过如果没相对应文本,则跳过不创建空文件夹,这样就更完美了
比如;文件中只有D10-A1.NC,D10-B1.NC,执行BAT批处理后只创建并移动至“A面”“B面”,不产生其他无关的空文件
另外,我还有个更大胆的想法,此批处理能否执行之后本身自动删除
作者: legend_bat    时间: 2015-2-4 10:38

@echo off
if exist *-BM*.NC md "底面"
move /y *-BM*.NC "底面"
if exist *-FM*.NC md "底面"
move /y *-FM*.NC "底面"
if exist *-EP*.NC md "R面"
move /y *-EP*.NC "R面"
if exist *-A*.NC md "A面"
move /y *-A*.NC "A面"
if exist *-B*.NC md "B面"
move /y *-B*.NC "B面"
if exist *-C*.NC md "C面"
move /y *-C*.NC "C面"
if exist *-D*.NC md "D面"
move /y *-D*.NC "D面"
if exist *-L*.NC md "F面"
move /y *-L*.NC "F面"
del %0
作者: DAIC    时间: 2015-2-4 12:36

回复 4# legend_bat


move命令也要放到if内部
  1. @echo off
  2. if exist *-BM*.NC (
  3.     md "底面" 2>nul
  4.     move /y *-BM*.NC "底面"
  5. )
  6. if exist *-FM*.NC (
  7.     md "底面" 2>nul
  8.     move /y *-FM*.NC "底面"
  9. )
  10. if exist *-EP*.NC (
  11.     md "R面" 2>nul
  12.     move /y *-EP*.NC "R面"
  13. )
  14. if exist *-A*.NC (
  15.     md "A面" 2>nul
  16.     move /y *-A*.NC "A面"
  17. )
  18. if exist *-B*.NC (
  19.     md "B面" 2>nul
  20.     move /y *-B*.NC "B面"
  21. )
  22. if exist *-C*.NC (
  23.     md "C面" 2>nul
  24.     move /y *-C*.NC "C面"
  25. )
  26. if exist *-D*.NC (
  27.     md "D面" 2>nul
  28.     move /y *-D*.NC "D面"
  29. )
  30. if exist *-L*.NC (
  31.     md "F面" 2>nul
  32.     move /y *-L*.NC "F面"
  33. )
  34. del /f /q "%~f0"
复制代码

作者: legend_bat    时间: 2015-2-4 17:03

回复 5# DAIC

确实,学习了~
作者: xugouwenrou    时间: 2015-2-5 01:51

谢谢两位大神的热心解答,问题很完美解决,谢谢
作者: pcl_test    时间: 2015-2-9 16:56

回复 7# xugouwenrou

如果问题已解决,请在标题最前面标上[已解决]
http://www.bathome.net/thread-3473-1-1.html




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2