批处理取文本文件的行数
方法一:
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir /a-d/b/s *.txt') do (
for /f "tokens=3 delims=:" %%b in ('find /c /v "" "%%a"') do set n=%%b
ren "%%a" "%%~na_!n: =!%%~xa"
)
pause
方法二:
@echo off & setlocal enabledelayedexpansion
%1(for /f "delims=" %%i in ('%~0 :^|sort') do ren %%i)& pause & exit /b
for /f "tokens=1,* delims= " %%i in ('find /c /v "" *.txt') do (
set info=%%j
set ln=!info:*:=!
for /f "delims=" %%a in ("!ln!") do set fn=!info::%%a=!
echo;"!fn!" "!fn:~,-4!!ln:~1!.txt"
)
批处理获取文件行数的方法
@echo off
for /f "tokens=2 delims=:" %%a in ('find /c /v "" data.txt')do set/a result=%%a+0
echo,%result%
pause
以上方法其实都大同小异,执行效率也差不多,小伙伴们需要的话自行选择吧
出处:https://www.zhiu.cn/51620.html
=======================================================================================
@echo off
@setlocal
@set n=0
for /f "usebackq delims=" %%i in (`findstr /n .* %~f1`) do @set /a n+=1
@echo %~f1 :该文件行数为:%n%
pause
这里把空行也纳入了统计,把上面保存为linecount.bat文件,然后运行
linecount xxxx.txt
就能显示行数结果了。(别忘记用notepad++之类把bat文件存成ANSI格式,否则运行结果中文乱码!)
出处:https://zhidao.baidu.com/question/273864134.html
=======================================================================================
怎么利用批处理查看一个文件有多少行
@echooff
set/p"file=请输入文件名:"
for /f "delims=:" %%a in('findstr/n .* "%file%"') do set lineno=%%a
echo %file%有%lineno%行
出处:https://wenwen.sogou.com/z/q805194893.htm
=======================================================================================
bat批处理获取文件行数
在windows下用batch命令获取文件行数,我的思路是用FOR语句来循环读取,但是在实验的过程中有点慢,请问有没有更好的方法?我的代码如下:
@ECHO OFF SETLOCAL ENABLEDELAYEDEXPANSION SET lines=0 IF "%1" == "" ECHO No Input File! & EXIT /B FOR /F "tokens=* delims=" %%i IN (%1) DO ( SET /A lines=!lines!+1 ) ECHO 当前文件共 !lines! 行!
---------------------------------------------------------------------------------------
@echo off REM 针对本程序斑驳不担保任何责任,欲知详细请查看 GPL.txt REM 这是一个自由的程序,欢迎您在特定条件下再次发布本程序。 REM REM 再次感谢您使用本脚本 REM 斑驳敬上 REM set file_name=%1 if not defined file_name (goto bad) if not exist %1 (goto err) for /f "tokens=1 delims=][" %%i in ('find /n /v "" %1') do ( set line=%%i ) echo total line: %line% goto :eof :bad echo usage: %~n0 file_name goto :eof :err echo file: %1 not exist! goto :eof
---------------------------------------------------------------------------------------
感谢楼上,看了你的代码,我查了下findstr /?,其实直接用以下命令也是可行的
findstr /n /i /v /x "!!~~~~~~~~~~~~~~~!!~~" [filepath]
后续可以根据以上代码打印出来的东西进行筛选
出处:https://www.wenjiangs.com/group/topic-8947.html
=======================================================================================
个人使用
@echo off&setlocal enabledelayedexpansion cls rem 指定文件扩展名,多个时使用空格分隔 set fileExt=*.cs set fileCount=0 rem 保存文件的所有行数 set linesCountAll=0 rem 保存文件的行数,并不包括空行 set linesCountExcludeNull=0 set codePath=%~1 if [%1] equ [] set codePath=%cd% rem Format data:remove '' and "" and \ set codePath='%codePath%' & set codePath=%codePath:'=% set codePath="%codePath%" & set codePath=%codePath:"=% if "%codePath:~-1%" equ "\" set codePath=%codePath:~,-1% echo codePath=%codePath% rem 判断源是文件夹还是文件 set pathIsDir=0 pushd "%codePath%" 2>nul && (popd&set pathIsDir=1) echo pathIsDir=%pathIsDir% echo;&echo [%date% %time%]按任意键将继续,退出请输入exit set varConfim=0&set /p varConfim= if /i "[%varConfim%]"=="[exit]" goto :eof if /i [%pathIsDir%]==[0] goto calcFileFun ::goto showResultFun :calcDirFun pushd %cd%&cd /d "%codePath%" echo [%date% %time%]开始计算【"%cd%"】路径下所有【%fileExt%】类型文件的行数. for /f "delims=" %%i in ('dir/b/s %fileExt%') do ( set/a fileCount=!fileCount!+1 ::echo %%i rem 可以先使用find /c /v "" "%%i"查看下行数的是第几列,然后再修改tokens的值为几。这里tokens表示取第几列的内容 for /f "tokens=3 delims=:" %%a in ('find /c /v "" "%%i"') do set/a linesCountAll=!linesCountAll!+%%a for /f "usebackq" %%j in ("%%i") do set /a linesCountExcludeNull=!linesCountExcludeNull!+1 ) popd goto showResultFun :calcFileFun echo [%date% %time%]工作目录【%cd%】 if not exist "%codePath%" echo [%date% %time%]文件不存在【"%codePath%"】&goto :eof echo [%date% %time%]开始计算【"%codePath%"】文件的行数. for /f "delims=" %%i in ('dir/b/s "%codePath%"') do ( set/a fileCount=!fileCount!+1 ::echo %%i rem 可以先使用find /c /v "" "%%i"查看下行数的是第几列,然后再修改tokens的值为几。这里tokens表示取第几列的内容 for /f "tokens=3 delims=:" %%a in ('find /c /v "" "%%i"') do set/a linesCountAll=!linesCountAll!+%%a for /f "usebackq" %%j in ("%%i") do set /a linesCountExcludeNull=!linesCountExcludeNull!+1 ) goto showResultFun :showResultFun echo. if /i [%pathIsDir%]==[0] echo [%date% %time%]完成计算【"%codePath%"】文件的行数. if /i [%pathIsDir%]==[1] echo [%date% %time%]完成计算【"%codePath%"】路径下所有【%fileExt%】类型文件的行数. echo [%date% %time%]找到所有文件总数:%fileCount% 个 echo [%date% %time%]所有文件的行总数:%linesCountAll% 行 echo [%date% %time%]去除空行的行总数:%linesCountExcludeNull% 行 echo. echo. pause
关注我】。(●'◡'●)
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的【因为,我的写作热情也离不开您的肯定与支持,感谢您的阅读,我是【Jack_孟】!
本文来自博客园,作者:jack_Meng,转载请注明原文链接:https://www.cnblogs.com/mq0036/p/17119405.html
【免责声明】本文来自源于网络,如涉及版权或侵权问题,请及时联系我们,我们将第一时间删除或更改!