Board logo

标题: [文本处理] [已解决]BAT怎样扫描文件夹下的文件并生成htm? [打印本页]

作者: air_zq    时间: 2013-9-18 18:49     标题: [已解决]BAT怎样扫描文件夹下的文件并生成htm?

d:\Zhou\Desktop\1920>dir /a /b /s *cov*.*
d:\Zhou\Desktop\1920\jvltmgjv\3l99bnqu\lxktrwjt_cov.jpg
d:\Zhou\Desktop\1920\jvltmgjv\qzb9exo7\k6vst4sy_cov.jpg
d:\Zhou\Desktop\1920\jvltmgjv\vd6r00mv\bnvxb9il_cov.jpg
d:\Zhou\Desktop\1920\vi4stelv\3l99bnqu\lxktrwjt_cov.jpg
d:\Zhou\Desktop\1920\vi4stelv\qzb9exo7\k6vst4sy_cov.jpg
d:\Zhou\Desktop\1920\vi4stelv\vd6r00mv\bnvxb9il_cov.jpg

文件夹名是多个英文加数字构成,文件名也是这样,但每个目录下的文件名都含有 “cov”,如何批量扫描这个目录然后然后生成以下htm代码?


<a href="jvltmgjv/3l99bnqu/" target="_blank"><img src="jvltmgjv/3l99bnqu/lxktrwjt_cov.jpg" width="300" height="300" /></a>

扫描文件夹下的文件并生成htm
作者: foxJL    时间: 2013-9-18 19:44

看看这个行不行
  1. @echo off
  2. echo.>photo.htm
  3. for /r D:\ %%i in (*cov*.*) do (
  4. >>photo.htm echo.^<a href="%%i" target="_blank"^>^<img src="%%i" width="200" /^>^</a^>
  5. )
  6. pause
复制代码

作者: Lumiere    时间: 2013-9-18 23:59

回复 1# air_zq
  1. for /f "tokens=1-3 delims=/" %%a in ('dir d:\Zhou\Desktop\1920 /a-d /s /b *cov.jpg') do echo ^<a href="%%a/%%b/" target="_blank"^>^<img src="%%a/%%b/%%c" width="300" height="300" /^>^</a^>>>1.htm
复制代码

作者: air_zq    时间: 2013-9-19 16:32

回复 2# foxJL

    老感谢了 ,代码简直太棒了。有点点小问题,因为输出的多,可不可以当输出多个htm,比方:每找到5个cov,产生一个文件。

还有就是输出htm,比方 图是 c:\1\1.jpg   点链接要打开 c:\1\   而不是图片。
作者: foxJL    时间: 2013-9-19 18:11

回复 4# air_zq


    下次请一次性把问题描述清楚
  1. @echo off & setlocal enabledelayedexpansion
  2. set n_1=0
  3. for /r d:\ %%i in (*cov*.*) do (
  4. set /a n+=1
  5. if !n! leq 5 (>>photo-!n_1!.htm echo.^<a href="%%~pi" target="_blank"^>^<img src="%%i" height="200" /^>^</a^>) else (
  6. set /a n_1+=1
  7. set n=1
  8. >>photo-!n_1!.htm echo.^<a href="%%~pi" target="_blank"^>^<img src="%%i" height="200" /^>^</a^>
  9. )
  10. )
  11. pause
复制代码

作者: 853122    时间: 2013-9-30 00:11

高手
作者: air_zq    时间: 2013-10-7 19:12

回复 5# foxJL


    感谢 foxJL大.
作者: air_zq    时间: 2013-10-7 19:14

回复 5# foxJL


    foxJL 大,有什么办法可以输出结果? 比方,只找到4个,如何输出4的值体现在 htm中 呢?
作者: foxJL    时间: 2013-10-8 10:06

回复 8# air_zq


    现在是找到5个文件生成1个htm网页,你是要在htm网页中显示总数还是只显示每个htm中的数量
作者: air_zq    时间: 2013-10-8 20:03

本帖最后由 air_zq 于 2013-10-8 20:04 编辑

回复 9# foxJL


    抛开输出n个htm,找到文件夹 含有 *cov*.* 的4个文件,打开这个网页后,会显示4个图片对吧。然后在图片后面要显示“只找到4个文件。” 如果找到3个,那就显示“只找到3个文件。”这个4或者3 如何用bat输出呢?
这个找到的值是找到图片个数的值,不是找到htm个数的值
作者: foxJL    时间: 2013-10-8 20:25

回复 10# air_zq
  1. @echo off
  2. >photo.htm echo.
  3. for /r D:\ %%i in (*cov*.*) do (
  4. set/a n+=1
  5. >>photo.htm echo.^<a href="%%~pi" target="_blank"^>^<img src="%%i" height="200" /^>^</a^>)
  6. >>photo.htm echo.共找到%n%个文件
  7. pause
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2