How can I read only X lines from a a.txt file?
The file contains all the names of a directory, I would like to read only x lines. X can be a number that can varies from 1 to 99
How can I read only X lines from a a.txt file?
The file contains all the names of a directory, I would like to read only x lines. X can be a number that can varies from 1 to 99
You'll need to modify this based on your needs, but the script below will loop through the file 'directories.txt', and ECHO the contents of the line until you hit the maximum number of lines set in maxlines
.
@ECHO OFF
setlocal enabledelayedexpansion
SET /A maxlines=1
SET /A linecount=0
FOR /F %%A IN (directories.txt) DO (
IF !linecount! GEQ %maxlines% GOTO ExitLoop
ECHO %%A
SET /A linecount+=1
)
:ExitLoop
PAUSE
you can use vbscript. Here's an example
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objArgs = WScript.Arguments
strNum = objArgs(0)
strFile=objArgs(1)
Set objFile = objFS.OpenTextFile(strFile)
Do Until objFile.AtEndOfLine
If CInt(objFile.Line) > CInt(strNum) Then
Exit Do
End If
strLine=objFile.ReadLine
WScript.Echo strLine
Loop
save as myscript.vbs and
c:\test> cscript //nologo myscript.vbs 99 file
Or if have the luxury to install tools, you can download sed or gawk for windows . Then on the command line
sed.exe "99q" file
gawk.exe "NR>2{exit}1" file
the command:
set/a linecount+=1 into the FOR loop is not incremented.
If I run the command line set/a linecount+=1 from the command prompt then it works, otherwise from the batch file it doesn't
I wrote it exactly as you did, but the counter doesn't increment itself.
I have seen that the command set /a linecount+=1 doesn't increment itself when is inside a FOR loop, but I haven't found a solution yet.
Ok it works,
it's only that if I want to echo linecount during the for loop i have to use echo !linecount!.
Thank you very much and sorry for the incomprehension