中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-11 21:35
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [讨论]变量路径无法正确读取行数 查看 716 回复 1
楼 主 [讨论]变量路径无法正确读取行数 发表于 2009-05-03 02:19 ·  中国 上海 浦东新区 电信
中级用户
★★
一看二跟三动手
积分 396
发帖 188
注册 2005-10-23 13:21
20年会员
UID 43919
来自 上海
状态 离线
我的文档累计文件总行数_备份用注册表定位.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
*/ . ./\~~~~~~~~~~~~'\. ^|◆
\* ,/,..,\,...........,\.◆
^|^| ..▎# ▎田 田 ▎ ^| ▎◆
^|^| ^&^&▎ ▎ ▎'^|'▎ o
^|^| ##■■■■■■■■■■〓
2 发表于 2009-05-10 10:26 ·  中国 上海 浦东新区 电信
中级用户
★★
一看二跟三动手
积分 396
发帖 188
注册 2005-10-23 13:21
20年会员
UID 43919
来自 上海
状态 离线
@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 ]
*/. . . * .
.\* . * dosz
*/ . ./\~~~~~~~~~~~~'\. ^|◆
\* ,/,..,\,...........,\.◆
^|^| ..▎# ▎田 田 ▎ ^| ▎◆
^|^| ^&^&▎ ▎ ▎'^|'▎ o
^|^| ##■■■■■■■■■■〓
论坛跳转: