Board logo

标题: [文本处理] 求助批处理怎样批量提取TXT的文件名中的一些字符? [打印本页]

作者: hou3343268    时间: 2012-2-22 14:15     标题: 求助批处理怎样批量提取TXT的文件名中的一些字符?

该文件夹中有以下2中类似文件:
3-1.txt  3-2.txt  3-3.txt 3-4.txt....
3--1.txt  3--2.txt  3--3.txt  3--4.txt....
要求提取第一个“-”后面的文件名到另外一个cc.TXT文件中 ,例如:
3-1.txt 就提取:1>>cc.txt
3--1.txt 就提取-1 >>cc.txt
可以实现吗?最好不要移动文件,那样效率太低了饿
作者: hou3343268    时间: 2012-2-22 14:17

求帮忙啊 大神们看你们的了
作者: BAT1    时间: 2012-2-22 14:33

谁把楼主的意思翻译一下,看不懂啊。
作者: hou3343268    时间: 2012-2-22 14:36

那点不懂啊?
很简单  就是提取文件名中的 第一个“-”后面的内容(不要后缀)
作者: BAT1    时间: 2012-2-22 14:39

要提取文件名,还是文件?
作者: hou3343268    时间: 2012-2-22 14:40

就是吧文件名输出到另外一个TXT文件中
作者: hou3343268    时间: 2012-2-22 14:48

F5都按坏了  莫非真的不能实现?
作者: BAT1    时间: 2012-2-22 14:51

本帖最后由 BAT1 于 2012-2-22 14:54 编辑
  1. @echo off
  2. setlocal EnableDelayedExpansion
  3. for /f %%i in ('dir /b 3-*.txt') do (
  4. set a=%%i
  5. echo  !a:~2,-4!>>另一个文件.txt
  6. )
  7. pause
复制代码

作者: hou3343268    时间: 2012-2-22 14:53

BAT1 发表于 2012-2-22 14:51



    太谢谢了 我区试试
作者: hou3343268    时间: 2012-2-22 14:56

!a:~2,-4!  
这个什么意思?
为什么是-4?
作者: BAT1    时间: 2012-2-22 14:58

回复 10# hou3343268


    这是代码
作者: hou3343268    时间: 2012-2-22 15:01

本帖最后由 hou3343268 于 2012-2-22 15:03 编辑

把前面改成
set a=%%~ni
我改成 !a:~2,3!也可以啊  
作者: namejm    时间: 2012-2-22 15:03

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f "delims=" %%i in ('dir /a-d /b *-*.txt') do (
  4.     set str=%%i
  5.     set str=!str:*-=!
  6.     echo !str!
  7. ))>cc.txt
  8. start cc.txt
复制代码

作者: BAT1    时间: 2012-2-22 15:04

本帖最后由 BAT1 于 2012-2-22 15:12 编辑

回复 13# namejm


    虽然你的效率快一点,但我用了7行就搞定,你的用了8行。:)
作者: hou3343268    时间: 2012-2-22 15:13

namejm 发表于 2012-2-22 15:03



    哇都惊动版主了  ,太荣幸了 谢谢了 测试可以用 学习了




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