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

回复 5楼 的帖子

我代码前面有一段内容你就没认真看。你的错误结果是因为你自己粗心。我的代码适用于文本中中括号行最后一个字符不是空格,而是]的情况,这样看来楼主的原始文本应该是空格。那么稍微修改下代码就可以,如下,楼主不要总是衣来伸手,人家给的代码不要拿来就用,起码看完前提。
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in (1.txt) do (
  3.      set "str=%%a"&set "str=!str::=-!"
  4.      if "!str:~0,1!"=="[" (if "!str:~-1!"==" " echo %%a>!str!.txt&echo !str!>temp.txt) else (
  5.      set /p n=<temp.txt
  6.      echo %%a>>!n!.txt
  7. ))
  8. del /q temp.txt
  9. pause
复制代码
楼主自己对比下看两个代码有什么差别吧。
Still with wax

TOP

难道我哪点还没有做对?怎么不成功呢?

我这还是有些不行啊,代码有些不懂,自己也不好改

TOP

回复 3楼 的帖子

你讲代码复制到文本所在的文件夹下运行肯定没问题的,我自己测试过
Still with wax

TOP

没有成功啊

出现了找不到temp文件的提示

TOP

摆脱能不能稍微专业点,文件名不能含有冒号的。你的条件达不到,考虑将冒号换成-可以。然后要注意的是楼主的样本文本里形如“[日期时间]”的行最后一字符是空格,不知是楼主疏漏还是本身那样的。我觉得是复制文本的时候的疏漏。假设最后一个字符是],而不是空格,代码如下:
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in (1.txt) do (
  3.      set "str=%%a"&set "str=!str::=-!"
  4.      if "!str:~0,1!"=="[" (if "!str:~-1!"=="]" echo %%a>!str!.txt&echo !str!>temp.txt) else (
  5.      set /p n=<temp.txt
  6.      echo %%a>>!n!.txt
  7. ))
  8. del /q temp.txt
  9. pause
复制代码
Still with wax

TOP

返回列表