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

[文本处理] 批处理怎样按照指定模板内容批量生成一系列以日期命名的txt文本文件?

[复制链接]
发表于 2012-12-20 10:59:55 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-7-24 14:44 编辑

我想要把日期作为内容
并放到每一个文件中
就是有20100101.txt
内容是:
$url = "http://bbs.kafan.cn/
soft/20100101/"
For $i = 0 To 9999
        $id = StringFormat
('%04s', $i)
        $file = $url & $id
&".exe"
        ToolTip($file)
        InetGet($file,
@ScriptDir& "\" &
StringTrimLeft($file,
StringInStr($file, "/", 2, -1)), 1)
Next
有没有办法?
谢谢
发表于 2012-12-20 13:01:14 | 显示全部楼层
  1. @echo off
  2. set fileName=%date:~0,10%
  3. set fileName=%fileName:-=%
  4. >%fileName%.txt echo $url = "http://bbs.kafan.cn/soft/%fileName%/"
  5. >>%fileName%.txt more +7 "%~f0"
  6. goto :eof

  7. For $i = 0 To 9999
  8.     $id = StringFormat('%04s', $i)
  9.     $file = $url & $id &".exe"
  10.     ToolTip($file)
  11.     InetGet($file,@ScriptDir& "" & StringTrimLeft($file,StringInStr($file, "/", 2, -1)), 1)
  12. Next
复制代码
 楼主| 发表于 2012-12-21 17:28:29 | 显示全部楼层
回复 2# BAT-VBS
好像不行,我希望得到的是多个文件如:
20100101.txt
20100102.txt
20100103.txt
……
这样子。
由我输入起末日期
发表于 2012-12-22 09:36:30 | 显示全部楼层
本帖最后由 再世情緣 于 2012-12-22 09:57 编辑

你的意思是批量生成你需要的
20100101.txt
20100102.txt
20100103.txt
201001xx.txt
。。。。。
这些个文本么??
我自己写的,以前用的。。。,你看下合适不

  1. @echo off &&color 0a
  2. setlocal enabledelayedexpansion
  3. title 生成文档
  4. :loop
  5. cls
  6. echo. &&echo.
  7. echo.文档名称组成由 “文档通用名”+“组数” 构成,请不要使用特殊符号。。。
  8. echo. &&echo. &&set /p txt=请输入文档通用名称:
  9. if not defined txt msg %username% /time:5 "错误!!文档通用名 [ %txt% ] 不得为空 !!!" & call :loop
  10. echo. &&echo. &&set /p i=请输入文档 [ %txt% ] 起始组数:
  11. if not defined i msg %username% /time:5 "错误!!开始组数 [ %i% ] 不得为空!!!" & call :loop
  12. echo. &&echo. &&set /p j=请输入文档 [ %txt% ] 结束组数:
  13. if not defined j msg %username% /time:5 "错误!!结束组数 [ %j% ] 不得为空!!!" & call :loop
  14. if %j% LSS %i% msg %username% /time:5 "错误!!结束组数 [ %j% ] 不得小于开始组数 [ %i% ] !!!" & call :loop
  15. md "%txt%" >nul
  16. pushd ".\%txt%"
  17. cls
  18. for /L %%a in (%i%,+1,%j%) do (
  19.   if %%a LSS 10 (set "nb=0%%a") else (set "nb=%%a")
  20.   echo.
  21.   echo.
  22.   echo.正在生成 %txt%!nb!.txt ....
  23.   echo.>"%txt%!nb!.txt"
  24.   cls
  25. )
  26. :finish
  27. cls
  28. echo. &&echo.
  29. echo 文档 [ %txt%%i% - %txt%%j% ] 生成完毕!!!
  30. ping localhost -n 3 >nul
  31. call exit
复制代码
生成的文档在自动生成的“文档通用名称”文件夹里
在你的例子中,文档通用名即为文档名称中一样的部分,在你的例子中,即为“201001”,组数为你想要多少个这样的文件。。。
另外。。。由于本人水平有限。。。你所输入的内容必须符合命名规则。。。组数。。。必须为数字。。。。。当前设置为2位数。。。比如:1自动补充为01。。。如果哥们儿需要更多的类似文档。。。MM我,或者看其他朋友的回复。。。
罗嗦了,见谅。。。
发表于 2012-12-22 23:38:49 | 显示全部楼层
回复 3# JohnChu


    因为你在顶楼没有提到这一点
 楼主| 发表于 2012-12-23 08:40:01 | 显示全部楼层
回复 5# BAT-VBS


    恩,抱歉没有说清楚
要生成这些文件应该怎么做呢
发表于 2012-12-23 12:10:11 | 显示全部楼层
回复 6# JohnChu


    先试试4楼的代码吧
 楼主| 发表于 2012-12-23 18:30:48 | 显示全部楼层
回复 7# BAT-VBS


    我希望生成的不是一系列空文件,内容是
“$url = "http://bbs.kafan.cn/soft/XXXXXXXX/"
For $i = 0 To 9999
        $id = StringFormat('%04s', $i)
        $file = $url & $id&".exe"
        ToolTip($file)
        InetGet($file,
@ScriptDir& "\" &
StringTrimLeft($file,
StringInStr($file, "/", 2, -1)), 1)
Next”
发表于 2016-7-24 15:26:40 | 显示全部楼层
本帖最后由 pcl_test 于 2016-7-24 15:30 编辑

vbs
  1. Set fso = CreateObject("Scripting.FileSystemObject")

  2. Set f = fso.OpenTextFile(WScript.ScriptFullName, 1)
  3. Do While f.AtEndOfStream <> true
  4.     line = f.ReadLine
  5.     If Left(line, 1) = "'" Then s = s& Mid(line, 2) &vbCrLf
  6. Loop

  7. date1 = DateValue("2015-01-01")
  8. date2 = DateValue("2015-01-05")

  9. Do Until date1 > date2
  10.     Wrtxt(date1)
  11.     date1 = DateAdd("d", 1 , date1)
  12. Loop
  13. Msgbox "Done"

  14. Function Wrtxt(d)
  15.     yMd = right(year(d),4) & right("0" & month(d),2) & right("0" & day(d),2)
  16.     fso.CreateTextFile(yMd &".txt", 2).Write replace(s, "$日期$", yMd)
  17. ENd Function

  18. '$url = "http://bbs.kafan.cn/soft/$日期$/"
  19. 'For $i = 0 To 9999
  20. '        $id = StringFormat('%04s', $i)
  21. '        $file = $url & $id &".exe"
  22. '        ToolTip($file)
  23. '        InetGet($file,
  24. '@ScriptDir& "" &
  25. 'StringTrimLeft($file,
  26. 'StringInStr($file, "/", 2, -1)), 1)
  27. 'Next
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-21 09:43 , Processed in 0.031055 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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