[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
空格是特意加的,为了方便检查
你自己改下就行了
echo !#%%i! !.%%j!>>"temp\%%a"
改为
echo !#%%i!!.%%j!>>"temp\%%a"
最初思路和 寒夜孤星 的一样,用 find 先获取总行数,但楼主要求是批量处理,且又以声明无空行,考虑效率问题,还是放弃了 find
另:能给 孤星 兄提个建议么?
以后写代码能否也讲究下书写格式,方便阅读啊,这样看你代码真有点累哦 ^_^
技术问题请到论坛发帖求助!

TOP

原帖由 hanyeguxing 于 2010-4-21 16:02 发表
行首不为:时@echo off&setlocal enabledelayedexpansion
set "h_1=AAAA:"&set "h_2=BBBB:"&set "h_3=CCCC:"&set "h_4=DDDD:"
for %%i in (*.txt) do (for /f %%j in ('find /c /v "" ^>"%%i.h" call echo.%%h_!c!% ...


谢谢。达到预期效果。

TOP

原帖由 随风 于 2010-4-21 15:43 发表
@echo off & setlocal enabledelayedexpansion
set #1=AAAA&set #2=BBBB&set #3=CCCC&set #4=DDDD
if not exist temp\ md temp
for %%a in (*.txt) do (
   set /a n=0
   for /f "usebackq delims=" %%i in (" ...

感谢感谢!
刚运行了一下,就是AAAA,BBBB,CCCC,DDDD后面多了一个空格,其它都正常
而且自动生成一个TEMP的目录,真好!

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. set "h_1=AAAA:"&set "h_2=BBBB:"&set "h_3=CCCC:"&set "h_4=DDDD:"
  3. for %%i in (*.txt) do (for /f %%j in ('find /c /v "" ^<"%%i"') do set/a a=%%j-6,b=%%j-2,c=0,d=0
  4. for /f "usebackq delims=" %%j in ("%%i") do set/a d+=1&if !d! gtr !a! if !d! leq !b! set/a c+=1&>>"%%i.h" call echo.%%h_!c!%%%%j
  5. del /q "%%i"
  6. ren "%%i.h" "%%i")
复制代码

[ 本帖最后由 hanyeguxing 于 2010-4-21 16:20 编辑 ]
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

行首不为:时
  1. @echo off&setlocal enabledelayedexpansion
  2. set "h_1=AAAA:"&set "h_2=BBBB:"&set "h_3=CCCC:"&set "h_4=DDDD:"
  3. for %%i in (*.txt) do (for /f %%j in ('find /c /v "" ^<"%%i"') do set/a a=%%j-6,b=%%j-2,c=0
  4. for /f "tokens=1* delims=:" %%j in ('findstr /n .* "%%i"') do if %%j gtr !a! if %%j leq !b! set/a c+=1&>>"%%i.h" call echo.%%h_!c!%%%%k
  5. del /q "%%i"
  6. ren "%%i.h" "%%i")
复制代码

汗,这圈子让我绕的

[ 本帖最后由 hanyeguxing 于 2010-4-21 16:08 编辑 ]
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

  1. @echo off & setlocal enabledelayedexpansion
  2. set #1=AAAA&set #2=BBBB&set #3=CCCC&set #4=DDDD
  3. if not exist temp\ md temp
  4. for %%a in (*.txt) do (
  5.    set /a n=0
  6.    for /f "usebackq delims=" %%i in ("%%a") do (
  7.       set /a n+=1
  8.       set .!n!=%%i
  9.     )
  10.     set /a m=n-2,h=m-3,j=0
  11.     for /l %%j in (!h! 1 !m!) do (
  12.        set /a j+=1
  13.        for %%i in (!j!) do echo !#%%i! !.%%j!>>"temp\%%a"
  14.     )
  15. )
  16. start temp
复制代码
技术问题请到论坛发帖求助!

TOP

1,刚又看了一遍
2.编码类型是ANSI,内容就是普通的数字,英文,无敏感字符,中文都没有。
3.“那4行都是有字的,没空行
4,可以直接对文件修改,反正我是有备份的,文件名不动,
5。批量操作,目录下的所有TXT文件,不止一个。
谢谢。

TOP

1,版规是要看滴
2,你没说明文本的编码类型和是否含或含什么样的敏感字符?
3,你没说明是否保留空行
4,你没说明是否直接对原文件进行修改
5,批量操作,是不是有多个文本要这样操作?
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

返回列表