标题: [文本处理] 批处理怎样按照指定模板内容批量生成一系列以日期命名的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
- @echo off
- set fileName=%date:~0,10%
- set fileName=%fileName:-=%
- >%fileName%.txt echo $url = "http://bbs.kafan.cn/soft/%fileName%/"
- >>%fileName%.txt more +7 "%~f0"
- goto :eof
-
- 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
复制代码
作者: 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
。。。。。
这些个文本么??
我自己写的,以前用的。。。,你看下合适不- @echo off &&color 0a
- setlocal enabledelayedexpansion
- title 生成文档
- :loop
- cls
- echo. &&echo.
- echo.文档名称组成由 “文档通用名”+“组数” 构成,请不要使用特殊符号。。。
- echo. &&echo. &&set /p txt=请输入文档通用名称:
- if not defined txt msg %username% /time:5 "错误!!文档通用名 [ %txt% ] 不得为空 !!!" & call :loop
- echo. &&echo. &&set /p i=请输入文档 [ %txt% ] 起始组数:
- if not defined i msg %username% /time:5 "错误!!开始组数 [ %i% ] 不得为空!!!" & call :loop
- echo. &&echo. &&set /p j=请输入文档 [ %txt% ] 结束组数:
- if not defined j msg %username% /time:5 "错误!!结束组数 [ %j% ] 不得为空!!!" & call :loop
- if %j% LSS %i% msg %username% /time:5 "错误!!结束组数 [ %j% ] 不得小于开始组数 [ %i% ] !!!" & call :loop
- md "%txt%" >nul
- pushd ".\%txt%\"
- cls
- for /L %%a in (%i%,+1,%j%) do (
- if %%a LSS 10 (set "nb=0%%a") else (set "nb=%%a")
- echo.
- echo.
- echo.正在生成 %txt%!nb!.txt ....
- echo.>"%txt%!nb!.txt"
- cls
- )
- :finish
- cls
- echo. &&echo.
- echo 文档 [ %txt%%i% - %txt%%j% ] 生成完毕!!!
- ping localhost -n 3 >nul
- 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- Set fso = CreateObject("Scripting.FileSystemObject")
-
- Set f = fso.OpenTextFile(WScript.ScriptFullName, 1)
- Do While f.AtEndOfStream <> true
- line = f.ReadLine
- If Left(line, 1) = "'" Then s = s& Mid(line, 2) &vbCrLf
- Loop
-
- date1 = DateValue("2015-01-01")
- date2 = DateValue("2015-01-05")
-
- Do Until date1 > date2
- Wrtxt(date1)
- date1 = DateAdd("d", 1 , date1)
- Loop
- Msgbox "Done"
-
- Function Wrtxt(d)
- yMd = right(year(d),4) & right("0" & month(d),2) & right("0" & day(d),2)
- fso.CreateTextFile(yMd &".txt", 2).Write replace(s, "$日期$", yMd)
- ENd Function
-
- '$url = "http://bbs.kafan.cn/soft/$日期$/"
- '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
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |