Board logo

标题: [文本处理] 批处理将文件名写入txt第一行并生成目录 [打印本页]

作者: Wingl83    时间: 2009-6-28 13:05     标题: 批处理将文件名写入txt第一行并生成目录

因为我的手机只能识别英文,所以若想把txt放入手机中查看,必须要把文件名改为英文,但是这样又不好识别,所以想建一个批处理,将该文件夹下的所有txt文件名写入对应文件的文件头中,再把所有txt按001.txt、002.txt这样的规格重命名。

[ 本帖最后由 Wingl83 于 2009-7-1 19:02 编辑 ]
作者: namejm    时间: 2009-6-28 13:18

  哪些文件要被命名为001.txt,哪些又必须被命名为002.txt?以何为序?
作者: zhouyongjun    时间: 2009-6-28 15:01

  1. @echo off
  2. set/a n=1000
  3. for %%a in (*.txt) do (
  4.     for /f "delims=" %%b in ('findstr/n ".*" "%%~a"') do (
  5.         set "str=%%b"&setlocal enabledelayedexpansion
  6.         set "str=!str:*:=!"
  7.         if not defined flag (>%%a echo %%~na&>>%%a echo/!str!) else (>>%%a echo/!str!)
  8.         endlocal&set flag=a
  9.      )
  10.      set "flag="&call :_ren "%%a"
  11. )
  12. pause&exit
  13. ::重命名
  14. :_ren
  15. set/a n+=1
  16. if not exist %n:~1%.txt (ren %1 "%n:~1%.txt") else goto _ren
复制代码

作者: FOR    时间: 2009-6-28 15:19

  1. @echo off&set /a n=1000
  2. setlocal enabledelayedexpansion
  3. for %%i in (*.txt) do (
  4.    set /a n+=1
  5.    echo %%~ni>!n:~-3!.txt
  6.    copy /b !n:~-3!.txt+"%%~nxi" !n:~-3!.txt
  7.    del/q "%%i"
  8. )
  9. pause
复制代码

[ 本帖最后由 FOR 于 2009-6-30 16:06 编辑 ]
作者: keen    时间: 2009-6-30 15:53     标题: 回复 4楼 的帖子

del/q "%%a" 这句是什么?
应该是del/q "%%i"吧。
作者: Wingl83    时间: 2009-7-1 19:02

另:若要生成目录000.txt呢?如

text1.txt  → 001.txt
text2.txt  → 002.txt
text3.txt  → 003.txt

其中,“→”为标示符,表示是将→左边的文档重命名为→右边的文档。




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