我正在寻找一个带有文件的DOS批处理程序:
First input line
Second input line
Third input line...
输出“第一输入线”
答案 0 :(得分:13)
你可以像这样获得第一行
set /p firstline=<file
echo %firstline%
答案 1 :(得分:10)
假设您的意思是Windows cmd
解释器(如果您确实 仍在使用DOS,我会感到惊讶),以下脚本将执行您想要的操作:
@echo off
setlocal enableextensions enabledelayedexpansion
set first=1
for /f "delims=" %%i in (infile.txt) do (
if !first!==1 echo %%i
set first=0
)
endlocal
输入文件为infile.txt
:
line 1
line 2
line 3
这将输出:
line 1
这仍然处理所有行,它只是不会打印超出第1行的那些行。如果你想实际停止处理,请使用类似的东西:
@echo off
setlocal enableextensions enabledelayedexpansion
for /f "delims=" %%i in (infile.txt) do (
echo %%i
goto :endfor
)
:endfor
endlocal
或者您可以开始Cygwin或GnuWin32并使用head
计划。这就是我要做的。但是,如果这不是一个选项(某些工作场所不允许),您可以在Windows中创建类似的cmd文件,如下所示(winhead.cmd
):
@echo off
setlocal enableextensions enabledelayedexpansion
if x%1x==xx goto :usage
if x%2x==xx goto :usage
set /a "linenum = 0"
for /f "usebackq delims=" %%i in (%1) do (
if !linenum! geq %2 goto :break1
echo %%i
set /a "linenum = linenum + 1"
)
:break1
endlocal
goto :finish
:usage
echo.winhead ^<file^> ^<numlines^>
echo. ^<file^>
echo. is the file to process
echo. (surround with double quotes if it contains spaces).
echo. ^<numlines^>
echo. is the number of lines to print from file start.
goto :finish
:finish
endlocal
答案 2 :(得分:-2)
为什么不通过管道使用more +1命令?
e.g。
键入内容|更多+1