Board logo

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

作者: JohnChu    时间: 2012-12-20 10:59     标题: 批处理怎样按照指定模板内容批量生成一系列以日期命名的txt文本文件?

本帖最后由 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
有没有办法?
谢谢
作者: BAT-VBS    时间: 2012-12-20 13:01

  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
复制代码

作者: JohnChu    时间: 2012-12-21 17:28

回复 2# BAT-VBS
好像不行,我希望得到的是多个文件如:
20100101.txt
20100102.txt
20100103.txt
……
这样子。
由我输入起末日期
作者: 再世情緣    时间: 2012-12-22 09:36

本帖最后由 再世情緣 于 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我,或者看其他朋友的回复。。。
罗嗦了,见谅。。。
作者: BAT-VBS    时间: 2012-12-22 23:38

回复 3# JohnChu


    因为你在顶楼没有提到这一点
作者: JohnChu    时间: 2012-12-23 08:40

回复 5# BAT-VBS


    恩,抱歉没有说清楚
要生成这些文件应该怎么做呢
作者: BAT-VBS    时间: 2012-12-23 12:10

回复 6# JohnChu


    先试试4楼的代码吧
作者: JohnChu    时间: 2012-12-23 18:30

回复 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”
作者: pcl_test    时间: 2016-7-24 15:26

本帖最后由 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
复制代码





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