当前位置:  开发笔记 > 编程语言 > 正文

Windows批处理命令从文本文件中读取第一行

如何解决《Windows批处理命令从文本文件中读取第一行》经验,为你挑选了5个好方法。

如何使用Windows批处理文件从文本文件中读取第一行?由于文件很大,我只想处理第一行.



1> Spaceballs..:

呃?imo这个更简单

  set /p texte=< file.txt  
  echo %texte%


+1,这是最好的工作时:-)它有以下限制1)最大行长度为1021字节,不包括EOL.2)文件必须使用CarriageReturn LineFeed的Windows样式EOL.3)尾随控制字符将从该行中剥离
此外,在读取文件之前,应明确地定义texte,以防第一行为空.

2> indiv..:

这是一个通用批处理文件,用于打印nGNU head实用程序等文件中的顶行,而不是单行.

@echo off

if [%1] == [] goto usage
if [%2] == [] goto usage

call :print_head %1 %2
goto :eof

REM
REM print_head
REM Prints the first non-blank %1 lines in the file %2.
REM
:print_head
setlocal EnableDelayedExpansion
set /a counter=0

for /f ^"usebackq^ eol^=^

^ delims^=^" %%a in (%2) do (
        if "!counter!"=="%1" goto :eof
        echo %%a
        set /a counter+=1
)

goto :eof

:usage
echo Usage: head.bat COUNT FILENAME

例如:

Z:\>head 1 "test file.c"
; this is line 1

Z:\>head 3 "test file.c"
; this is line 1
    this is line 2
line 3 right here

它目前不计算空行.它还受批量文件行长度限制8 KB的限制.


仅供参考:"GOTO:EOF"这是一个特殊标签,它将退出脚本而无需定义特殊的":exit"标签.它在批处理中定义子程序时也很有用(你说的是什么?子程序?是的)
这似乎轰炸了我的几个GB文本文件......在一个文件中,它在尝试返回10行时给了我"Out of Memory"错误,在另一个文件上它只是在要求它返回时返回一个空行10行.任何想法为什么会这样?

3> Amit Naidu..:

呃你们......

C:\>findstr /n . c:\boot.ini | findstr ^1:

1:[boot loader]

C:\>findstr /n . c:\boot.ini | findstr ^3:

3:default=multi(0)disk(0)rdisk(0)partition(1)\WINNT

C:\>


如果你想要它没有引号而没有/ b选项那么只需要转义插入符:`findstr ^^ 1`.
如果文件超过11行,它将打印多于第一行,如:1:,11:,21:等等...
此外,它会将行号添加到您真正想要的文本行中!因此,当您需要文本时不那么有用.

4> Ross Fuhrman..:

你可以尝试一下:

@echo off

for /f %%a in (sample.txt) do (
  echo %%a
  exit /b
)

编辑 或者,假设您有四列数据并希望从第5行到底部,请尝试以下操作:

@echo off

for /f "skip=4 tokens=1-4" %%a in (junkl.txt) do (
  echo %%a %%b %%c %%d
)


这个解决方案的问题是它在空格而不是换行符上划分,并且你不能有空格的文件名.您可以使用for循环中的delims和usebackq选项修复这些问题.

5> Jesse Vogt..:

感谢thewalkingwalnut回答Windows批处理命令从文本文件中读取第一行我想出了以下解决方案:

@echo off
for /f "delims=" %%a in ('type sample.txt') do (
echo %%a
exit /b
)

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有