标题: [讨论]变量路径无法正确读取行数
[打印本页]
作者: dosz
时间: 2009-5-3 02:19
标题: [讨论]变量路径无法正确读取行数
我的文档累计文件总行数_备份用注册表定位.bat
@echo off
echo.
:: 我的文档累计文件总行数
:备份用注册表定位“我的文档”"%MDpath%"相对路径,适应每台机器。
for /f "tokens=2*" %%a in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" ^| findstr "Personal"') do set MDpath=%%b
:创建“我的文档\Dirlist”目录_"%MDpath%\Dirlist\"
if not exist "%MDpath%\Dirlist\" MD "%MDpath%\Dirlist"
:写入文件
echo hao>"%MDpath%\Dirlist\hao.txt
echo hao>>"%MDpath%\Dirlist\hao.txt
echo hao>>"%MDpath%\Dirlist\hao.txt
echo hao>>"%MDpath%\Dirlist\hao.txt
echo hao>>"%MDpath%\Dirlist\hao.txt
:显示路径
for /f "delims=" %%a in ("%MDpath%\Dirlist\hao.txt") do echo %%a
echo.
:累计文件总行数
for /f "delims=" %%a in ("%MDpath%\Dirlist\hao.txt") do set/a n+=1
::set/a n=%n%-2
echo ============================= >>"%MDpath%\Dirlist\hao.txt"
echo 总数为:%n% >>"%MDpath%\Dirlist\hao.txt"
echo 总数为:%n%
:打开文件
start notepad "%MDpath%\Dirlist\hao.txt"
pause
@echo off
:: 附C:\boot.ini文件总行数
echo.
for /f "delims=" %%a in (C:\boot.ini) do set/a n+=1
echo C:\boot.ini %n%行
echo.
for /f " delims=:" %%i in ('findstr /n .* "C:\boot.ini"') do set var=%%i
echo C:\boot.ini %var%行
ping/n 3 127.1>nul
pause
hao.txt
hao
hao
hao
hao
hao
=============================
总数为:1
[
Last edited by dosz on 2009-5-3 at 02:44 ]
作者: dosz
时间: 2009-5-10 10:26
@echo off
echo.
:: 我的文档累计文件总行数
:备份用注册表定位“我的文档”"%MDpath%"相对路径,适应每台机器。
for /f "tokens=2*" %%a in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" ^| findstr "Personal"') do set MDpath=%%b
:创建“我的文档\Dirlist”目录_"%MDpath%\Dirlist\"
if not exist "%MDpath%\Dirlist\" MD "%MDpath%\Dirlist"
:写入文件
echo hao>"%MDpath%\Dirlist\hao.txt
echo hao>>"%MDpath%\Dirlist\hao.txt
echo hao>>"%MDpath%\Dirlist\hao.txt
echo hao>>"%MDpath%\Dirlist\hao.txt
echo hao>>"%MDpath%\Dirlist\hao.txt
:显示路径
for /f "delims=" %%a in ("%MDpath%\Dirlist\hao.txt") do echo %%a
echo.
:累计文件总行数findstr /n_变量路径读取行数正确
:: http://bbs.bathome.cn/thread-474-1-1.html
:: 批处理计算一文本文件的行数
for /f "tokens=1 delims=:" %%i in ('findstr /n .* "%MDpath%\Dirlist\hao.txt"') do set m=%%i
:: 用findstr /n 打印了行号后,再用冒号作分割符,%%i的值就是行号
::set/a m=%n%-2
:: set/am=%n%-2 则是去掉“%DATE% %time%” 和“===”二行数。
echo 总数为:%m%
[
Last edited by dosz on 2009-5-10 at 10:30 ]