此批处理脚本的想法是拆分包含由' //'分隔的信息行的文件。然后根据时间戳命名文件,并将特殊关键字命名为文件扩展名。该文件还包含在拆分文件之前首先需要删除的标头。主文件样本:
基本上,批处理脚本会将主标题转换为' //'然后使用' //'作为分隔符,内容将被分解为单独的文件。并且每个文件将根据时间戳(yyyymmdd_hhmmss)和子标题> TXT'进行命名。和' DOC'作为文件扩展名。 例子20140914_001411.TXT或20140914.013326。
如果在主文件中找不到关键字TXT或DOC,则不需要采取任何措施。
真的很感激,如果有人可以帮助我使用这个脚本。
感谢/问候
答案 0 :(得分:1)
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET "destdir=U:\destdir"
SET "extensions=doc txt"
SET "datestamp=%date%_%time%"
FOR %%s IN (/ - " " . :) DO SET "datestamp=!datestamp:%%~s=!"
SET "output="
FOR %%a IN (%extensions%) DO DEL "%destdir%\%datestamp%.%%a" >NUL 2>nul
FOR /f "delims=" %%a IN (q25829175.txt) DO (
IF "%%a"=="//" (SET "output=Y"&SET "ext="
) ELSE (
IF DEFINED output (
IF NOT DEFINED ext FOR %%s IN (%extensions%) DO IF /i "%%a"=="%%s" SET "ext=%%s"
IF DEFINED ext (>>"%destdir%\%datestamp%.!ext!" ECHO(%%a) ELSE (SET "output=")
)
)
)
GOTO :EOF
您需要更改destdir
的设置以适合您的具体情况。
我使用了一个名为q25829175.txt
的文件,其中包含我的测试数据,但我删除了终止空格并在每个数据部分的每一行附加了一个字母,以便可以单独区分它们。
基本上,output
标志已设置,并且每次遇到ext
时都会清除//
数据。如果我们输出(output
设置),那么如果未设置ext
,则必须是潜在部分的第一行,以便进行检查和建立。
如果ext
仍然未设置,则此部分无关紧要,因此请清除输出标志,否则ext
包含section-id输出到该文件。
您需要根据您的特定要求操纵datestamp
。轻松完成 - 只需查阅批量子串的任何数量的SO文章。