Board logo

标题: [文件操作] [已解决]批处理怎样只取第一个字母作为文件夹? [打印本页]

作者: 511182890    时间: 2015-6-3 16:27     标题: [已解决]批处理怎样只取第一个字母作为文件夹?

只取第一个字母作为文件夹
目录文件:座套DXF\AA\G1201\136\FT2032-G1202-KC五位-146-副背料-倒顺-551.dxf
我要把批处理放在“座套DXF”下,执行一下得结果为座套DXF\AA\G1201\136\F\FT2032-G1202-KC五位-146-副背料-倒顺-551.dxf
我要把批处理放在“AA”下,执行一下得结果为座套DXF\AA\G1201\136\F\FT2032-G1202-KC五位-146-副背料-倒顺-551.dxf

要二个程序。且多次执行不重复创建F文件夹
作者: terse    时间: 2015-6-3 21:12

这样吗?
  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('dir /b /s /a-d') do (
  3.     if "%%a" neq "%~0" (
  4.        set str=%%~na
  5.        for %%i in ("%%a\..") do (
  6.            if "%%~ni" neq "!str:~,1!" (
  7.                md "%%~dpa!str:~,1!" 2>nul
  8.                move "%%a" "%%~dpa!str:~,1!"
  9.            )
  10.        )
  11.     )
  12. )
  13. pause
复制代码

作者: 511182890    时间: 2015-6-5 10:36

回复 2# terse

你好帮忙再修改一下
    只取第一、二、三的英文字母作为文件夹
目录文件:座套DXF\AA\G1201\136\XFL2032-G1202-KC五位-146-副背料-倒顺-551.dxf
座套DXF\AA\G1201\136\XFL2032-G1202-KC五位-146-副背料-倒顺-551.dxf
我要把批处理放在“座套DXF”下,执行一下得结果为座套DXF\AA\G1201\136\FT\FT2032-G1202-KC五位-146-副背料-倒顺-551.dxf
DXF\AA\G1201\136\XFL\XFL2032-G1202-KC五位-146-副背料-倒顺-551.dxf
我要把批处理放在“AA”下,执行一下得结果为座套
DXF\AA\G1201\136\FT\FT2032-G1202-KC五位-146-副背料-倒顺-551.dxf
DXF\AA\G1201\136\XFL\XFL2032-G1202-KC五位-146-副背料-倒顺-551.dxf
只取英文不取数字,文件的前几位都是英文,有二位英文与三位英文
作者: terse    时间: 2015-6-5 11:11

回复 3# 511182890
  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('dir /b /s /a-d') do (
  3.     if "%%a" neq "%~0" (
  4.        set str=%%~na
  5.        for /f "tokens=1-2 delims=0123456789" %%i in ("!str:~,3!") do (
  6.            set "str=%%i%%j"
  7.        )
  8.        for %%i in ("%%a\..") do (
  9.            if "%%~ni" neq "!str!" (
  10.                md "%%~dpa!str!" 2>nul
  11.                move "%%a" "%%~dpa!str!"
  12.            )
  13.        )
  14.     )
  15. )
  16. pause
复制代码





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