Board logo

标题: [已结]求助:批处理制作一个网页分页项 [打印本页]

作者: ganjie     时间: 2009-1-29 11:58    标题: [已结]求助:批处理制作一个网页分页项

最近下载了一些电子书,解压后全是一些htm网页,因为想把它们打包成chm格式的,所以想在网页中加入分页项

假设这样htm的文件名为:A、B、C、D、………………(这个是为有好发贴假设的文件名,不要误会了),假
设最后一项为S
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>
为了增加版面的简洁,下面是简化的形式,但批处理做出来的效果要和上面的htm代码相符,分页项规律如下:(下面的数字意思是 文件名按名称排序后的序号,如A就为1,C就为3 F就为5了,而诸如1/19、3/19 中的19,是因为假定有19个文件数)
A   第一页A   A1 B2 C3 D4 E5  1/19   最后一页S  补偿其后的四个
B   第一页A   A1 B2 C3 D4 E5  2/19   最后一页S  补偿其后的三个
C   第一页A   A1 B2 C3 D4 E5  3/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

假如S为最后一个其对应数字为19则 补偿其前的四个
S 第一页A      O15    P16  Q17   R18  S19  最后一页S

假如R为最后一个其对应数字为19则 补偿其前的三个
R 第一页A      O15    P16  Q17   R18  S19  最后一页S

假如Q为倒数每三个,因为有了其前后两个了,就不用补偿
Q   第一页A      O15    P16  Q17   R18  S19  最后一页S
以上均是文件数有5个或5个以上时


如果文件数只有一个则:
A     A1   1/1

如果文件数有二个则:
A   第一页A   A1 B2   1/2   最后一页B   补偿一个
A   第一页A   A1 B2   2/2     最后一页B

如果文件数有三个则:
A   第一页A   A1 B2  C3  1/3   最后一页C  补偿两个
A   第一页A   A1 B2  C3  2/3     最后一页C  补偿一个
C   A   第一页A   A1 B2   2/3     最后一页C  

如果文件数有四个则:
A   第一页A   A1 B2  C3 D4  1/4   最后一页D  补偿三个
A   第一页A   A1 B2  C3 D4  2/4     最后一页D  补偿两个
C   第一页A    A1 B2  C3 D4   3/4     最后一页D  补偿一个
A   第一页A   A1 B2  C3 D4  4/4     最后一页D
小弟在论坛上混有些日子了,但为了能实现上面的的分页项竟然要制作5个单独的批处理才能完成,所以求大大们帮忙写个批处理,谢谢了!

[ Last edited by HAT on 2009-2-4 at 14:08 ]
作者: ganjie     时间: 2009-1-31 09:05
谁来帮小弟呀,求大大们帮忙一下,如果有什么地方在贴子中不明白而不能回复的,可以回贴问呀,小弟表达水平实在有限,不知在贴子中还少什么?
作者: slore     时间: 2009-1-31 15:43
因为太复杂了……
作者: netbenton     时间: 2009-1-31 23:52    标题: 这样可以了吗?

@echo off&setlocal enabledelayedexpansion
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
set/a ms=1-4,mb=1+4
for /l %%a in (1,1,!n!) do (
        echo 正在写入文件 !fn%%a!
        set sn=0
        for /l %%b in (!ms!,1,!mb!) do (
                set/a sn+=1
                set/a xo!sn!=%%b
        )
        set xn=0
        set "z7=<td scope="col">%%a/!n!</td>"

(echo.!z1!&echo.!z2!&echo.!z3!&call :paup
call :save !xo1!,!xo6! !xo2!,!xo7! !xo3!,0 !xo4!,0 !xo5!,0 !xo6!,0 !xo7!,0 !xo8!,0 !xo9!,0
call :pado
echo.!z7!&echo.!z8!&echo.!z9!&echo.!z10!)>>!fn%%a!


        set/a ms+=1,mb+=1
)

echo 写入完成
pause
goto :eof

:paup
if defined fn%xo4% set "z4=<td scope="col"><a href="!fn%xo4%!">上一页</a></td>"&echo !z4!
goto :eof

:pado
if defined fn%xo6% set "z6=<td scope="col"><a href="!fn%xo6%!">下一页</a></td>"&echo !z6!
goto :eof

:save
if "%2"=="" goto :eof
if defined fn%1 (
        if not defined fn%2 (set "pr=<td scope="col"><a href="!fn%1!">%1</a></td>"&!echo !pr!&set/a xn+=1)
)
if !xn!==5 goto :eof
shift
shift
goto :save
作者: haolongo     时间: 2009-2-1 16:43
用不起来,你要说说用的方法。
作者: ganjie     时间: 2009-2-2 07:51
测试成功,谢谢 netbenton ,可你这是读取当前目录下的所有 htm文件,偶想读取当前目录下所有文件夹里的htm,保存在个自的文件夹下%%k\%%i.txt
@echo off
setlocal enabledelayedexpansion
set "route=%cd%"
for /f "delims=" %%k in ('dir /ad /b "%route%"') do (
for /f "delims=" %%i in ('dir /b /a-d %%k\*.htm') do (
…………………………
…………………………



因为如文件:黄易、古龙、柳生等小说文件夹是分开独立的,请再帮我改改,好吗,谢谢!

[ Last edited by ganjie on 2009-2-2 at 07:58 ]
作者: netbenton     时间: 2009-2-2 12:26
@echo off
::自动建立网页连接的chm格式
::遍历指的目录下的所有子目录,各个子目录独立一个chm
::会在处理过的目录生成一个chmchm.abc作为已处理的标记。
if '%1'=='' echo.&echo 请把要处理的总目录拖到本批处理上!&echo 或在命令行指明总目录!&echo 如:%~n0 d:\小说&pause&exit
if '%1'=='#benton#' goto :begin
pushd %1
if %errorlevel% gtr 0 echo.抱歉!你所指的目录不存在.&pause&exit
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文件
popd
pause
goto :eof

:begin
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/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
set/a ms=1-4,mb=1+4
for /l %%a in (1,1,!n!) do (
        echo 正在写入文件: !fn%%a!
        set sn=0
        for /l %%b in (!ms!,1,!mb!) do (
                set/a sn+=1
                set/a xo!sn!=%%b
        )
        set xn=0
        set "z7=<td scope="col">%%a/!n!</td>"

(echo.!z1!&echo.!z2!&echo.!z3!&call :paup
call :save !xo1!,!xo6! !xo2!,!xo7! !xo3!,0 !xo4!,0 !xo5!,0 !xo6!,0 !xo7!,0 !xo8!,0 !xo9!,0
call :pado
echo.!z7!&echo.!z8!&echo.!z9!&echo.!z10!)>>!fn%%a!


        set/a ms+=1,mb+=1
)
endlocal
echo 写入完成
goto :eof

:paup
if defined fn%xo4% set "z4=<td scope="col"><a href="!fn%xo4%!">上一页</a></td>"&echo !z4!
goto :eof

:pado
if defined fn%xo6% set "z6=<td scope="col"><a href="!fn%xo6%!">下一页</a></td>"&echo !z6!
goto :eof

:save
if "%2"=="" goto :eof
if defined fn%1 (
        if not defined fn%2 (set "pr=<td scope="col"><a href="!fn%1!">%1</a></td>"&!echo !pr!&set/a xn+=1)
)
if !xn!==5 goto :eof
shift
shift
goto :save

[ Last edited by netbenton on 2009-2-4 at 09:04 ]
作者: ganjie     时间: 2009-2-2 14:58
netbenton ,你这个批处理,偶不知怎么运行,不过我看了一下代码,发现你误会了我的意思,我的要的是每个小说集里都的htm 添加入分页,如黄易小说里有 01.htm,02.htm等等,而古龙里也有类似的htm格式小说,我想让每个子文件夹都生成单独的分页,注意是独立的,不是相关的,如你4楼的代码,就生成得很好,偶就是想要每个子文件夹都是这种效果!
作者: netbenton     时间: 2009-2-3 00:15
把全部代码存成一个批处理文件。
在资源管理器里把要处理的目录(总目录)拖放到这个秕处理上就可以了。
它所做的就是给每个子目录独立加的,并且对已处理过的子目录做记号,
就算你多拖一次也不会重加的。
作者: ganjie     时间: 2009-2-3 10:16
还是不行呀,偶已经把总目录或子文件夹拖放到这个批处理多次了,批处理窗口一下子就消失了,里面的htm一个也没有变什么内容呀,换了几个目录,还是没有什么反应!请大大帮忙改一下,把总目录改成当前目录%cd%,谢谢了!

[ Last edited by ganjie on 2009-2-3 at 10:21 ]
作者: everest79     时间: 2009-2-3 16:10

'双击选择需要操作的目录
'支持拖放

Dim oFSO,oSHE,oDCT
Set oFSO=CreateObject("Scripting.FileSystemObject")
Set oDCT=CreateObject("Scripting.Dictionary")
Set oSHE=CreateObject("Shell.Application")

If WScript.Arguments.Count > 0 Then
userPath=WScript.Arguments(0)
Else
userPath=Selectx
End If

If oFSO.FileExists(userPath) Then
userPath=oFSO.GetParentFolderName(userPath)
End If

Set oFolder=oFSO.GetFolder(userPath)
Set oFilesC=oFolder.Files

For Each objtmp In oFilesC
If InStr(1,objtmp.Type,"html",1) >0 Then
   fileCount=fileCount+1
   oDCT.Add fileCount,objtmp.Name
End If
Next

For j = 1 To oDCT.Count
If (j Mod 5) = 0 Then
k=k+5
Else
i=k+1
End If

otstr=vbCrLf
otstr=otstr & "<table border=""0"" align=""center"" cellpadding=""0"" cellspacing=""15""><tr>" & vbCrLf
otstr=otstr & "<td><a href=""" & oDCT.Item(1) & """>&#60;&#60;</a></td>" & vbCrLf
If oDCT.Exists(j-1) Then otstr=otstr & "<td><a href=""" & oDCT.Item(j-1) & """>上一页</a></td>" & vbCrLf
otstr=otstr & "<td><a href=""" & oDCT.Item(i) & """>" & i & "</a></td>" & vbCrLf
If oDCT.Exists(i+1) Then otstr=otstr & "<td><a href=""" & oDCT.Item(i+1) & """>" & i+1 & "</a></td>" & vbCrLf
If oDCT.Exists(i+2) Then otstr=otstr & "<td><a href=""" & oDCT.Item(i+2) & """>" & i+2 & "</a></td>" & vbCrLf
If oDCT.Exists(i+3) Then otstr=otstr & "<td><a href=""" & oDCT.Item(i+3) & """>" & i+3 & "</a></td>" & vbCrLf
If oDCT.Exists(i+4) Then otstr=otstr & "<td><a href=""" & oDCT.Item(i+4) & """>" & i+4 & "</a></td>" & vbCrLf
If oDCT.Exists(j+1) Then otstr=otstr & "<td><a href=""" & oDCT.Item(j+1) & """>下一页</a></td>" & vbCrLf
otstr=otstr & "<td>" & j & "/" & oDCT.Count & "</td>" & vbCrLf
otstr=otstr & "<td><a href=""" & oDCT.Item(oDCT.Count)  & """>&#62;&#62;</a></td>" & vbCrLf
otstr=otstr & "</tr></table>" & vbCrLf

Set oWrite=oFSO.OpenTextFile(userPath & "\" & oDCT.Item(j),8)
oWrite.WriteLine otstr
oWrite.Close

Next

Function Selectx
Set TMPath=oSHE.BrowseForFolder(0,"选择要修改的文件夹:",0)
'oSHE.Open TMPath
If TMPath Is Nothing Then WScript.Quit
Selectx=TMPath.Self.Path
End Function

作者: netbenton     时间: 2009-2-3 19:48
不会呀,你有没有复制完整呀,我自己是测试过的哦!
直接上传,你下了试试吧
http://upload.cn-dos.net/img/1289.rar

[ Last edited by netbenton on 2009-2-3 at 19:50 ]
作者: ganjie     时间: 2009-2-4 03:17
谢谢netbenton还特意上传文件,偶自己认真的测试了,拖目录后批处理窗口一下子还是就消失了,里面的htm一个也没有内容变化,确实是没有什么反应!可以把总目录改成当前目录%cd%或是能让我指定文件夹目录,谢谢了!everest79的vbs不支持总目录,而且分页中的链接排序不是偶想要的,当前页居中,左右两个的形式!

[ Last edited by ganjie on 2009-2-4 at 04:09 ]
作者: netbenton     时间: 2009-2-4 09:13
试下这样吧,拷到要处理的总目录,直接打开。

@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/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
set/a ms=1-4,mb=1+4
for /l %%a in (1,1,!n!) do (
        echo 正在写入文件: !fn%%a!
        set sn=0
        for /l %%b in (!ms!,1,!mb!) do (
                set/a sn+=1
                set/a xo!sn!=%%b
        )
        set xn=0
        set "z7=<td scope="col">%%a/!n!</td>"

(echo.!z1!&echo.!z2!&echo.!z3!&call :paup
call :save !xo1!,!xo6! !xo2!,!xo7! !xo3!,0 !xo4!,0 !xo5!,0 !xo6!,0 !xo7!,0 !xo8!,0 !xo9!,0
call :pado
echo.!z7!&echo.!z8!&echo.!z9!&echo.!z10!)>>!fn%%a!


        set/a ms+=1,mb+=1
)
endlocal
echo 写入完成
goto :eof

:paup
if defined fn%xo4% set "z4=<td scope="col"><a href="!fn%xo4%!">上一页</a></td>"&echo !z4!
goto :eof

:pado
if defined fn%xo6% set "z6=<td scope="col"><a href="!fn%xo6%!">下一页</a></td>"&echo !z6!
goto :eof

:save
if "%2"=="" goto :eof
if defined fn%1 (
        if not defined fn%2 (set "pr=<td scope="col"><a href="!fn%1!">%1</a></td>"&!echo !pr!&set/a xn+=1)
)
if !xn!==5 goto :eof
shift
shift
goto :save
作者: ganjie     时间: 2009-2-4 13:12
OK,终于可以了,麻烦netbenton了,谢谢!
作者: ganjie     时间: 2009-2-5 10:07
问一下,如果要改,如
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

可以改成这个样子的吗?就是在本页前加个 '当前页面',我曾试图改你上面的代码,但发现这是不可能的,除非要改个算法.
作者: everest79     时间: 2009-2-5 18:59


  Quote:
Originally posted by ganjie at 2009-2-4 03:17 AM:
谢谢netbenton还特意上传文件,偶自己认真的测试了,拖目录后批处理窗口一下子还是就消失了,里面的htm一个也没有内容变化,确实是没有什么反应!可以 ...

嘿嘿
作者: netbenton     时间: 2009-2-5 19:43
找到这三个地方:
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 ]
作者: ganjie     时间: 2009-2-6 08:19
原来是这样子改就行了,我本以为加入当前链接后,肯定要修改算法,这样我就可以自行修改当前页面这项了,
如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需要的,如何才改成这样子?
作者: netbenton     时间: 2009-2-6 09:04
真希望楼主能把问题一次讲清楚。。。

再把第三行改成这样,就可以了。
        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
        )
作者: ganjie     时间: 2009-2-6 09:21
不好意思,抱歉!我本来就已经早该完结了,可是为了更美观,就用上了css样式,所以……,费话少说,试验了一下,成功,谢谢,非常感谢!
作者: netbenton     时间: 2009-10-9 08:08
楼主补充了新问题:

相互链接的文件由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!