Board logo

标题: 批处理把一文本的首行和尾行并接为一行 [打印本页]

作者: ieutk    时间: 2008-3-29 15:38     标题: 批处理把一文本的首行和尾行并接为一行

   一个文本文件内容如下,把它们的第一行和最后一行并接成一行显示在屏幕上

  1. 12345
  2. dw5v
  3. ti7
  4. dfg3
  5. ds120
  6. ds437
  7. dw025
  8. 32123
  9. aseth
  10. ep09
  11. s36
  12. 567
  13. 54dc汉
  14. d36国
  15. 33s
  16. 人中
  17. d2
  18. 6789
复制代码

作者: 梦想种子    时间: 2008-3-29 15:52

  1. @echo off
  2. set /p a=<a.txt
  3. for /f "delims=" %%i in (a.txt) do set b=%%i
  4. echo %a%%b%
  5. pause>nul
复制代码

作者: mokmao    时间: 2008-3-31 17:10

不用"delims="也可以得到结果
作者: xiaoxx    时间: 2008-4-27 19:40

如果尾行是空行。
那么合并结果会出错。
作者: xiaoxx    时间: 2008-4-27 20:45

@echo off
set /p a=<abc.txt
setlocal EnableDelayedExpansion
for /f %%i in ('findstr /n .* abc.txt') do (set hhh=%%i)
set "hhh=!hhh:*:=%a%!"
echo !hhh!
pause>nul

但首行和尾行不能都为空(空格也算空)否则仅仅会输出echo的状态。等同于一个单独的echo.
作者: keen    时间: 2009-4-5 01:17

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in (a.txt) do (
  3.     set a=%%i
  4.     set /a n+=1
  5.     if !n!==1 set o=!a!
  6. )
  7. echo %o%%a%&pause>nul
复制代码

作者: sjzong    时间: 2009-4-25 18:12     标题: 我也试试

其实主要是文本中,第一行和最后一行不能使空的!空行会跳过的!
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims= " %%a in (a.txt) do (set/a num+=1&set !num!=%%a)
  4. echo !1!!%num%!
复制代码

[ 本帖最后由 sjzong 于 2009-4-25 18:22 编辑 ]
作者: battab    时间: 2014-2-22 14:27

回复 1# ieutk
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f %%i in (1.txt) do (
  3. set str=!str!%%i)
  4. echo %str:~,5%%str:~-4%
  5. pause>nul
复制代码
还不通用,只是个思路,仅符合题例,有待完善。
作者: 522235677    时间: 2014-2-22 22:13

回复 8# battab


    你不如直接写个
  1. echo 123456789
复制代码

作者: sbjugt    时间: 2014-3-7 17:43

@echo off
for /f %%i in (a.txt) do (set a=%%i)

for /f %%i in (a.txt) do (set b=%%i&&goto :b)

:b
echo %b%%a%
pause
作者: zh_1452    时间: 2014-6-25 20:15

  1. @echo off
  2. cd..\..
  3. cd /d f:\.&type nul>1.txt
  4. @echo off
  5. set str=12345dw5vti7dfg3ds120ds437dw02532123asethep09s3656754dc汉d36国33s人中d26789
  6. echo var=%str:~0,5%
  7. echo %str:~0,5%>f:\1.txt
  8. pause
  9. @echo off
  10. cd..\..
  11. cd /d f:\.&type nul>2.txt
  12. @echo off
  13. set str=12345dw5vti7dfg3ds120ds437dw02532123asethep09s3656754dc汉d36国33s人中d26789
  14. set var=%str:~-4%
  15. echo %str:~-4%
  16. echo %str:~-4%>>f:\2.txt
  17. pause
  18. @echo off
  19. cd..\..
  20. cd /d f:\.&type nul>3.txt&type 1.txt>3.txt%type 2.txt>3.txt
  21. start "" f:\3.txt
  22. pause
复制代码

作者: shelluserwlb    时间: 2014-11-8 14:53

本帖最后由 shelluserwlb 于 2014-11-9 16:08 编辑
  1. @echo off
  2. for /f %%i in (a.txt) do (
  3.     if %%i neq "" (set "str1=%%i" & goto :next)
  4. )
  5. :next
  6. for /f %%i in (a.txt) do (
  7.     if %%i neq "" set "str2=%%i"
  8. )
  9. echo %str1%%str2%
  10. pause>nul
复制代码

作者: 尘丶    时间: 2015-5-31 14:27

  1. @echo off&setlocal enabledelayedexpansion
  2. set /p a=<a.txt
  3. for /f %%n in (a.txt) do (
  4.     set b=%%n
  5.   
  6. )
  7. echo %a%!b!
  8. pause
复制代码

作者: 437153    时间: 2015-6-5 16:38

@echo off&setlocal enabledelayedexpansion
for /f "tokens=1,2 delims=:" %%i in ('type 1.txt^|findstr /n .') do (
        set/a n+=1
        set h!n!=%%j
)
set/a m=%n%-(%n%-1)
echo:!h%m%! !h%n%!
作者: 尘丶    时间: 2015-8-8 16:25

1.
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in (1.txt) do (
  3. set s=%%a
  4. set /a n+=1
  5. if !n!==1 set /p=%%a<nul
  6. echo;%%a>nul
  7. )
  8. echo;!s!
  9. pause
复制代码
2.
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in (1.txt) do set /p n=<1.txt&set s=%%a
  3. echo;!n!!s!
  4. pause
复制代码
3.
  1. @echo off&setlocal enabledelayedexpansion
  2. (for /l %%a in (1,1,20) do set /p n%%a=)<1.txt
  3. echo;!n1!!n18!
  4. pause
复制代码

作者: wutarnow    时间: 2015-10-20 09:15

  1. @echo off
  2. set /p a=<2.txt
  3. for /f %%I in (2.txt) do (
  4.     set b=%%I
  5. )
  6. echo %a%%b%
复制代码

作者: 依山居    时间: 2015-10-22 23:28

python
  1. f=open("a.txt","r")
  2. txt=f.readlines()
  3. f.close()
  4. l=txt[0].rstrip()+txt[-1]
  5. print(l)
复制代码

作者: 懒虫阿布    时间: 2018-7-29 14:48

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in (pjfile.txt) do (
  4. if not defined firstrow (set firstrow=%%i) else (set lastrow=%%i)
  5. )
  6. echo !firstrow!!lastrow!
复制代码





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