批处理之家's Archiver

ieutk 发表于 2008-3-29 15:38

批处理把一文本的首行和尾行并接为一行

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

[code]12345
dw5v
ti7
dfg3
ds120
ds437
dw025
32123
aseth
ep09
s36
567
54dc汉
d36国
33s
人中
d2
6789[/code]

梦想种子 发表于 2008-3-29 15:52

[code]@echo off
set /p a=<a.txt
for /f "delims=" %%i in (a.txt) do set b=%%i
echo %a%%b%
pause>nul[/code]

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

[code]@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (a.txt) do (
    set a=%%i
    set /a n+=1
    if !n!==1 set o=!a!
)
echo %o%%a%&pause>nul[/code]

sjzong 发表于 2009-4-25 18:12

我也试试

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

[[i] 本帖最后由 sjzong 于 2009-4-25 18:22 编辑 [/i]]

battab 发表于 2014-2-22 14:27

[b]回复 [url=http://bbs.bathome.net/redirect.php?goto=findpost&pid=3300&ptid=795]1#[/url] [i]ieutk[/i] [/b][code]@echo off&setlocal enabledelayedexpansion
for /f %%i in (1.txt) do (
        set str=!str!%%i)
echo %str:~,5%%str:~-4%
pause>nul[/code][size=3]还不通用,只是个思路,仅符合题例,有待完善。[/size]

522235677 发表于 2014-2-22 22:13

[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=144814&ptid=795]8#[/url] [i]battab[/i] [/b]


    你不如直接写个[code]echo 123456789[/code]

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

**** 作者被禁止或删除 内容自动屏蔽 ****

shelluserwlb 发表于 2014-11-8 14:53

[i=s] 本帖最后由 shelluserwlb 于 2014-11-9 16:08 编辑 [/i]

[code]@echo off
for /f %%i in (a.txt) do (
    if %%i neq "" (set "str1=%%i" & goto :next)
)
:next
for /f %%i in (a.txt) do (
    if %%i neq "" set "str2=%%i"
)
echo %str1%%str2%
pause>nul[/code]

尘丶 发表于 2015-5-31 14:27

[code]
@echo off&setlocal enabledelayedexpansion
set /p a=<a.txt
for /f %%n in (a.txt) do (
    set b=%%n
  
)
echo %a%!b!
pause[/code]

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.[code]@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%a in (1.txt) do (
set s=%%a
set /a n+=1
if !n!==1 set /p=%%a<nul
echo;%%a>nul
)
echo;!s!
pause[/code]2.[code]@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%a in (1.txt) do set /p n=<1.txt&set s=%%a
echo;!n!!s!
pause[/code]3.[code]@echo off&setlocal enabledelayedexpansion
(for /l %%a in (1,1,20) do set /p n%%a=)<1.txt
echo;!n1!!n18!
pause[/code]

wutarnow 发表于 2015-10-20 09:15

[code]
@echo off
set /p a=<2.txt
for /f %%I in (2.txt) do (
    set b=%%I
)
echo %a%%b%
[/code]

依山居 发表于 2015-10-22 23:28

python[code]f=open("a.txt","r")
txt=f.readlines()
f.close()
l=txt[0].rstrip()+txt[-1]
print(l)
[/code]

懒虫阿布 发表于 2018-7-29 14:48

[code]@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%i in (pjfile.txt) do (
        if not defined firstrow (set firstrow=%%i) else (set lastrow=%%i)
)

echo !firstrow!!lastrow!
[/code]

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.