找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 24588|回复: 5

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

[复制链接]
发表于 2015-11-21 09:19:29 | 显示全部楼层 |阅读模式
本帖最后由 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:09 | 显示全部楼层
搜索批处理 当天日期,和变量截取。
>>是追加
>是覆盖写入
 楼主| 发表于 2015-11-23 10:08:48 | 显示全部楼层

  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:18 | 显示全部楼层
%%~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
复制代码
发表于 2015-11-23 12:38:46 | 显示全部楼层
  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:02 | 显示全部楼层
回复 5# WHY


    只扩展到文件名,用相对路径更好。我以为。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 08:57 , Processed in 0.019545 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表