Board logo

标题: [文件操作] 求一个批处理扫描文件生成htm网页文件. [打印本页]

作者: zzw668    时间: 2015-11-21 09:19     标题: 求一个批处理扫描文件生成htm网页文件.

本帖最后由 zzw668 于 2015-11-21 18:01 编辑

求一个批处理扫描文件生成htm网页文件.

想实现一个功能:批处理文件扫描指定的文件夹中的制定文件类型并生成网页文件.
比如扫描D:\wwwroot\ce3下的所有带有文件名中有20150109的所有jpg文件可以用。
以下代码是坛子里面找的谢谢高手.
  1. @echo off & setlocal enabledelayedexpansion
  2. set n_1=0
  3. for /r D:\wwwroot\ce3\ %%i in (*20150109*.jpg) 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
复制代码
现在有几个问题,跪求高手帮助!
1.如何让扫描时文件名根据当天时间动态变化比如今天是20150112就扫描*20150109*.jpg
2.生成的htm网页文件名能否也动态变化。哪天扫描的生成的文件以当天日期命名,并同名覆盖。
3.生成的图片地址以http://192.168 .1.13这样的格式,而不是文件目录D:\wwwroot\ce3\
作者: 依山居    时间: 2015-11-21 09:54

搜索批处理 当天日期,和变量截取。
>>是追加
>是覆盖写入
作者: zzw668    时间: 2015-11-23 10:08

  1. @echo off & setlocal enabledelayedexpansion
  2. rem echo
  3. for /f "tokens=1,2,3 delims=/- " %%a in ("%date%") do @set D=%%a%%b%%c
  4. rem echo
  5. for /f "tokens=1,2,3 delims=:." %%a in ("%time%") do @set T=%%a%%b%%c
  6. rem echo
  7. set T=%T: =0%
  8. rem echo  
  9. echo %D%
  10. del *%D%*.htm
  11. pause
  12. set n_1=0
  13. for /r D:\wwwroot\ce4\%D%\ %%i in (*%D%*.jpg) do (
  14. set /a n+=1
  15. if !n! leq 3 (>>%D%-!n_1!.htm echo.^<a href="%%~pi" target="_blank"^>^<img src="%
  16. %i" height="200" /^>^</a^>) else (
  17. set /a n_1+=1
  18. set n=1
  19. >>%D%-!n_1!.htm echo.^<a href="%%~pi" target="_blank"^>^<img src="%%i" height="200"
  20. /^>^</a^>
  21. )
  22. )
复制代码
pause

经过研究上面的问题 已经解决好两个了只有最后一个,求告手帮助把文件路径改写成网络路径.
也就是生成的
<img src="D:\wwwroot\ce4\20151122\20151122 (1).jpg" height="200" />

改写成
<img src="http://192.168.1.17/20151122/20151122 (1).jpg" height="200" />
作者: 依山居    时间: 2015-11-23 11:24

%%~pi 的用法在for 命令的说明下。
打for /?可以看得到。
你照说明改。
  1. 另外,FOR 变量参照的替换已被增强。您现在可以使用下列
  2. 选项语法:
  3.      %~I          - 删除任何引号("),扩展 %I
  4.      %~fI        - 将 %I 扩展到一个完全合格的路径名
  5.      %~dI        - 仅将 %I 扩展到一个驱动器号
  6.      %~pI        - 仅将 %I 扩展到一个路径
  7.      %~nI        - 仅将 %I 扩展到一个文件名
  8.      %~xI        - 仅将 %I 扩展到一个文件扩展名
  9.      %~sI        - 扩展的路径只含有短名
  10.      %~aI        - 将 %I 扩展到文件的文件属性
  11.      %~tI        - 将 %I 扩展到文件的日期/时间
  12.      %~zI        - 将 %I 扩展到文件的大小
  13.      %~$PATH:I   - 查找列在路径环境变量的目录,并将 %I 扩展
  14.                    到找到的第一个完全合格的名称。如果环境变量名
  15.                    未被定义,或者没有找到文件,此组合键会扩展到
  16.                    空字符串
  17. 可以组合修饰符来得到多重结果:
  18.      %~dpI       - 仅将 %I 扩展到一个驱动器号和路径
  19.      %~nxI       - 仅将 %I 扩展到一个文件名和扩展名
  20.      %~fsI       - 仅将 %I 扩展到一个带有短名的完整路径名
  21.      %~dp$PATH:I - 搜索列在路径环境变量的目录,并将 %I 扩展
  22.                    到找到的第一个驱动器号和路径。
  23.      %~ftzaI     - 将 %I 扩展到类似输出线路的 DIR
复制代码

作者: WHY    时间: 2015-11-23 12:38

  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "tokens=1,2,3 delims=/- " %%a in ("%date%") do set "D=%%a%%b%%c"
  3. del *%D%*.htm 2>nul
  4. set "fd=D:\wwwroot\ce4\%D%"
  5. set n=-1
  6. for /r "%fd%\" %%i in (*%D%*.jpg) do (
  7.     set /a n+=1, m=n/5
  8.     set "f=%%i"
  9.     set "f=!f:%fd%\=http://192.168.1.1/!"
  10.     >>%D%-!m!.htm echo;^<a href="%%~pi" target="_blank"^>^<img src="!f:\=/!" height="200" /^>^</a^>
  11. )
复制代码

作者: 依山居    时间: 2015-11-23 12:46

回复 5# WHY


    只扩展到文件名,用相对路径更好。我以为。




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