Originally posted by 26933062 at 2008-7-10 11:00 PM:
不是命令行或批处理的问题,而是代码思路不对。
个人认为:一般来说,最佳答案最好都不要临时文件。
@echo off
for %%a in (a b c) do echo %%a>>a.txt
echo.>>a.txt
echo.>>a.txt
rem 不改变源文件的偷懒法
copy a.txt c.txt >nul
for /f %%i in (a.txt) do echo %%i>>b.txt
echo end of file>>c.txt
for /f "delims=:" %%i in ('findstr /n . b.txt') do set num1=%%i
for /f "delims=:" %%i in ('findstr /n . c.txt') do set num2=%%i
set /a num=%num2%-%num1%
echo 总行数 %num2%
echo 非空行数 %num1%
echo 空行数 %num%
pause
运行结果:
总行数 6
非空行数 3
空行数 3
请按任意键继续. . .
应该只看结果吧, 达到目的就好。
生成临时文件占用硬盘空间, 用完之后可以删除。
不生成临时文件占用内存,用完之后可以释放。
二者没什么区别。
当然你要一下子先把条件讲清,不许生成临时文件,那么就看技巧了。
Last edited by quya on 2008-7-10 at 11:12 PM ]