中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-12 16:48
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]求助:批处理制作一个网页分页项 查看 2,856 回复 21
16 发表于 2009-02-05 10:07 ·  中国 上海 华为云
初级用户
积分 49
发帖 37
注册 2007-05-08 09:38
19年会员
UID 87820
性别 男
状态 离线
问一下,如果要改,如
D 第一页A B2 C3 D4 E5 F6 4/19 最后一页S
E 第一页A C3 D4 E5 F6 G7 5/19 最后一页S
F 第一页A D4 E5 F6 G7 H8 6/19 最后一页S

改成:
D 第一页A B2 C3 当前页面:D4 E5 F6 4/19 最后一页S
E 第一页A C3 D4 当前页面:E5 F6 G7 5/19 最后一页S
F 第一页A D4 E5 当前页面:F6 G7 H8 6/19 最后一页S

可以改成这个样子的吗?就是在本页前加个 '当前页面',我曾试图改你上面的代码,但发现这是不可能的,除非要改个算法.
17 发表于 2009-02-05 18:59 ·  中国 广东 广州 天河区 电信
金牌会员
★★★★
一叶枝头,万树皆春
积分 2,564
发帖 1,127
注册 2006-12-25 22:57
19年会员
UID 74552
性别 男
状态 离线
Originally posted by ganjie at 2009-2-4 03:17 AM:
谢谢netbenton还特意上传文件,偶自己认真的测试了,拖目录后批处理窗口一下子还是就消失了,里面的htm一个也没有内容变化,确实是没有什么反应!可以 ...

嘿嘿
49206C6F766520796F752067757973 54656C3A3133383238343036373837
18 发表于 2009-02-05 19:43 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916
发帖 752
注册 2008-12-28 04:30
17年会员
UID 135147
性别 男
来自 广西
状态 离线
找到这三个地方:
1. set xn=0
2. set/a ms+=1,mb+=1
3. if not defined fn%2 (set "pr=<td scope="col"><a href="!fn%1!">%1</a></td>"&!echo !pr!&set/a xn+=1)

改成:
1. set xn=0&set "dqym%%a=当前页面:"
2. set/a ms+=1,mb+=1&set dqym%%a=
3. if not defined fn%2 (set "pr=<td scope="col"><a href="!fn%1!">!dqym%1!%1</a></td>"&!echo !pr!&set/a xn+=1)

[ Last edited by netbenton on 2009-2-5 at 19:44 ]
精简
=> 个人网志
19 发表于 2009-02-06 08:19 ·  中国 上海 华为云
初级用户
积分 49
发帖 37
注册 2007-05-08 09:38
19年会员
UID 87820
性别 男
状态 离线
原来是这样子改就行了,我本以为加入当前链接后,肯定要修改算法,这样我就可以自行修改当前页面这项了,
如C 文件的分页项如下:
<table widtd="500" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td scope="col"><a href="A.htm">第一页</a></td>
<td scope="col"><a href="B.htm">上一页</a></td>
<td scope="col"><a href="A.htm">1</a></td>
<td scope="col"><a href="B.htm">2</a></td>
<td scope="col"><a href="C.htm">3</a></td>
<td scope="col"><a href="D.htm">4</a></td>
<td scope="col"><a href="E.htm">5</a></td>
<td scope="col"><a href="F.htm">下一页</a></td>
<td scope="col">3/19</td>
<td scope="col"><a href="S.htm">最后一页</a></td>
</tr>
</table>
这样我就可以把当前页这段 <td scope="col"><a href="C.htm">3</a></td>
改为 <strong>3</strong> 这是为了css需要的,如何才改成这样子?
20 发表于 2009-02-06 09:04 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916
发帖 752
注册 2008-12-28 04:30
17年会员
UID 135147
性别 男
来自 广西
状态 离线
真希望楼主能把问题一次讲清楚。。。

再把第三行改成这样,就可以了。
if not defined fn%2 (
if defined dqym%1 (set "pr=<td scope="col"><strong>%1</strong></td>") else (set "pr=<td scope="col"><a href="!fn%1!">%1</a></td>")
echo !pr!&set/a xn+=1
)
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
HAT +2 2009-02-06 13:51
精简
=> 个人网志
21 发表于 2009-02-06 09:21 ·  中国 上海 华为云
初级用户
积分 49
发帖 37
注册 2007-05-08 09:38
19年会员
UID 87820
性别 男
状态 离线
不好意思,抱歉!我本来就已经早该完结了,可是为了更美观,就用上了css样式,所以……,费话少说,试验了一下,成功,谢谢,非常感谢!
22 发表于 2009-10-09 08:08 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916
发帖 752
注册 2008-12-28 04:30
17年会员
UID 135147
性别 男
来自 广西
状态 离线
楼主补充了新问题:

相互链接的文件由5个改为n个:

@echo off
::在 %1 指定要处理的目录,如果所给目录不存在或不指定,则处理当前目录。
if '%1'=='#benton#' goto :bengin
if not '%1==' pushd %1
for /f "tokens=* delims=" %%a in ('dir /ad /s /b^&cd') do (
pushd %%a
call %0 #benton#
popd
)
if not '%test%=='t echo 目录"%cd%"下找不到任何*.htm文件
if not '%1==' popd
pause
goto :eof

:bengin
if not exist *.htm goto :eof
set test=t&echo.
if exist chmchm.abc echo 目录"%cd%"已有chm,本次跳过,&echo.如果要重加,请把该目录的chmchm.abc删除后,再试。&goto :eof
echo 目录%cd%
echo.>chmchm.abc
setlocal enabledelayedexpansion

set "num=7" 在这里定义项数,多少项都可以
set "fg=<td scope="col">.</td>" 这里定义分隔符


set/a n=0
for %%a in (*.htm) do (
set /a n+=1
set fn!n!=%%a
)

set "z1=<table widtd="500" border="0" align="center" cellpadding="0" cellspacing="0">"
set "z2=<tr>"
set "z3=<td scope="col"><a href="!fn1!">第一页</a></td>"
set "z8=<td scope="col"><a href="!fn%n%!">最后一页</a></td>"
set "z9=</tr>"
set "z10=</table>"

if !n! gtr 1 goto :noly

(echo !z1!&echo !z2!
set "z5=<td scope="col"><a href="!fn1!">1</a></td>"
set "z7=<td scope="col">1/1</td>"
echo !z5!&echo !z7!&echo !z9!&echo !z10!)>>!fn1!
goto :eof

:noly 不止一个文件
for /l %%a in (1,1,!n!) do (
echo 正在写入文件: !fn%%a!
set "z7=<td scope="col">%%a/!n!</td>"
set/a pup=%%a-1,pdo=%%a+1
(echo;!z1!&echo;!z2!&echo;!z3!

call :save %%a

echo;!z7!&echo;!z8!&echo;!z9!&echo;!z10!)>>!fn%%a!
)
endlocal
echo 写入完成
pause
goto :eof

:save
if defined fn%pup% set "z4=<td scope="col"><a href="!fn%pup%!">上一页</a></td>"&echo !z4!
echo !fg!
set/a sn=0,ms=%1-num,mb=%1+num-1,nun=num/2+1,mmm=0
for /l %%a in (!ms!,1,!mb!) do (
set/a xn=%%a+num,mmm+=1

set yy=
if not defined fn!xn! (set yy=1) else (
if !mmm! gtr !nun! set yy=1
)

if defined fn%%a (
if defined yy (
set "pr=<td scope="col"><a href="!fn%%a!">%%a</a></td>!fg!"

if %%a equ %1 set "pr=<td >%%a</td>!fg!"
rem 这句使当前项免去链接,如果不需要,可以删除。

echo !pr!
set/a sn+=1
)
)
if !sn! equ !num! goto :ok
)
:ok
if defined fn%pdo% set "z6=<td scope="col"><a href="!fn%pdo%!">下一页</a></td>"&echo !z6!
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
ganjie +2 2009-10-09 12:20
精简
=> 个人网志
论坛跳转: