中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [讨论]变量路径无法正确读取行数
作者:
标题: [讨论]变量路径无法正确读取行数 上一主题 | 下一主题
dosz
中级用户

一看二跟三动手


积分 396
发帖 188
注册 2005-10-23
来自 上海
状态 离线
『楼 主』:  [讨论]变量路径无法正确读取行数

我的文档累计文件总行数_备份用注册表定位.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      
^|^| ##■■■■■■■■■■〓
2009-5-3 02:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
dosz
中级用户

一看二跟三动手


积分 396
发帖 188
注册 2005-10-23
来自 上海
状态 离线
『第 2 楼』:  


@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      
^|^| ##■■■■■■■■■■〓
2009-5-10 10:26
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: