标题: [其他] 文件夹里的所有图片生成一个html页,如何把图片的相对路径写入到html文件中 [打印本页]
作者: zcg1123 时间: 2017-7-14 22:29 标题: 文件夹里的所有图片生成一个html页,如何把图片的相对路径写入到html文件中
本帖最后由 zcg1123 于 2017-7-15 12:03 编辑
原本的BAT文件是:批处理将一个文件夹里的所有图片生成一个html页。
我把桌面上面的图片文件夹移动到E盘,打开“图片.html”文件就不显示图片了,也不能打开链接。
只因为批处理生成的HTML文件是绝对路径,把HTML文件中代码路径修改为a href="图片01.jpg",Img Src="图片01.jpg"这样的相对路径,就可以显示和打开链接了,
经常要把此文件夹发给公司其它同事,每个人放的位置不一样,打开就是一片空白。
每次增加或修改图片,我只能每生成一次HTML文件,就要打开HTML文件手动去修改里面的链接路径,实在太麻烦。
怎么修改BAT批处理文件,让生成的HTML文件中的路径直接是这样的相对路径?
下面是代码:批处理将一个文件夹里的所有图片生成一个html页代码:
——————————————————————————————————————————————————————
@echo off&SetLocal EnableDelayedExpansion
For /f "delims=" %%i in ('dir/b/on') do (Set a=%%~pi
Set a=!a:\= !)
For %%i in (%a%) do Set b=%%i
::获取文件夹名
Set n=0
(
Echo ^<Html^>
Echo ^<Title^>
Echo %b%
Echo ^</Title^>
Echo ^<Body^>
For /r %%i in (*.jpg *.bmp *.gif *.png) do (Echo ^<a href="%%i" target=_blank^> ^<Img Src="%%i" width="200" height="200"^>
Set n=1)
::将当前文件夹中所有的图片地址写入到html文件中。
Echo ^</Body^>
Echo ^</Html^>
)>"%b%.html"
If %n%==0 Msg * "当前文件夹中没有图片" & del %b%.html
If %n%==1 Start "" "%b%.html"
————————————————————————————————————————————————
上面是BAT批处理文件源代码,
桌面上“图片”文件夹放了4张图片,BAT文件也在该目录下,执行BAT文件,
生成的html文件代码如下:
————————————————————————————————————————————————
<Html>
<Title>
图片
</Title>
<Body>
<a href="d:\我的文档\桌面\图片\图片01.jpg" target=_blank> <Img Src="d:\我的文档\桌面\图片\图片01.jpg" width="200" height="200">
<a href="d:\我的文档\桌面\图片\图片02.jpg" target=_blank> <Img Src="d:\我的文档\桌面\图片\图片02.jpg" width="200" height="200">
<a href="d:\我的文档\桌面\图片\图片03.jpg" target=_blank> <Img Src="d:\我的文档\桌面\图片\图片03.jpg" width="200" height="200">
<a href="d:\我的文档\桌面\图片\图片04.jpg" target=_blank> <Img Src="d:\我的文档\桌面\图片\图片04.jpg" width="200" height="200">
</Body>
</Html>
————————————————————————————————————————————————————————————————————
上面的HTML代码不是我想要的,我想要的是如下相对路径的代码:
————————————————————————————————————————————————————————————————————
<Html>
<Title>
图片
</Title>
<Body>
<a href="图片01.jpg" target=_blank> <Img Src="图片01.jpg" width="200" height="200">
<a href="图片02.jpg" target=_blank> <Img Src="图片02.jpg" width="200" height="200">
<a href="图片03.jpg" target=_blank> <Img Src="图片03.jpg" width="200" height="200">
<a href="图片04.jpg" target=_blank> <Img Src="图片04.jpg" width="200" height="200">
</Body>
</Html>
————————————————————————————————————————————————————————————————————
原本的BAT文件是:批处理将一个文件夹里的所有图片生成一个html页。
我把桌面上面的图片文件夹移动到E盘,打开“图片.html”文件就不显示图片了,也不能打开链接。
只因为批处理生成的HTML文件是绝对路径,把HTML文件中代码路径修改为a href="图片01.jpg",Img Src="图片01.jpg"这样的相对路径,就可以显示和打开链接了,
经常要把此文件夹发给公司其它同事,每个人放的位置不一样,打开就是一片空白。
每次增加或修改图片,我只能每生成一次HTML文件,就要打开HTML文件手动去修改里面的链接路径,实在太麻烦。
怎么修改BAT批处理文件,让生成的HTML文件中的路径直接是这样的相对路径?
作者: 3518228042 时间: 2017-7-15 09:02
- @echo off&SetLocal EnableDelayedExpansion
- For /f "delims=" %%i in ('dir/b/on') do (Set a=%%~pi
- Set a=!a:\= !)
- For %%i in (%a%) do Set b=%%i
- ::获取文件夹名
- Set n=0
- (
- Echo ^<Html^>
- Echo ^<Title^>
- Echo %b%
- Echo ^</Title^>
- Echo ^<Body^>
- For /r %%i in (*.jpg *.bmp *.gif *.png) do (Echo ^<a href="%%i" target=_blank^> ^<Img Src="%%i" width="200" height="200"^>
- Set n=1)
- ::将当前文件夹中所有的图片地址写入到html文件中。
- Echo ^</Body^>
- Echo ^</Html^>
- )>"%b%.html"
- If %n%==0 Msg * "当前文件夹中没有图片" & del %b%.html
- If %n%==1 Start "" "%b%.html"
复制代码
结果都写上面了,图片路径后面给回车换行了,链接就断了,把那个删除
作者: zcg1123 时间: 2017-7-15 10:53
本帖最后由 zcg1123 于 2017-7-15 12:06 编辑
回复 2# 3518228042
多谢楼上的回复!
空格是我复制代码的问题,好像不是空格的问题。
你的代码生成HTML文件后,还是和原来的一样,问题没有解决。
请哪位老师、师傅、大神、高手帮忙修改一下,拜谢!!!
作者: hlzj88 时间: 2017-7-15 18:19
把上例的<a href="%%i" target=_blank^> ^<Img Src="%%i" width="200" height="200"^>里的%%i改为 %%:~ni。即可,参考 for /?
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |