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

[文本处理] 批处理将文件名写入txt第一行并生成目录

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

[ 本帖最后由 Wingl83 于 2009-7-1 19:02 编辑 ]
我是小菜菜……

  哪些文件要被命名为001.txt,哪些又必须被命名为002.txt?以何为序?
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

  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
复制代码

TOP

  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 编辑 ]

TOP

回复 4楼 的帖子

del/q "%%a" 这句是什么?
应该是del/q "%%i"吧。
(*^_^*)

TOP

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

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

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

TOP

返回列表