使用windows批处理将文本文件拆分为多个文件
此批处理脚本的思想是分割一个文件,该文件包含以“/”分隔的信息行,然后根据时间戳以及作为文件扩展名的特殊关键字命名该文件。该文件还包含一个头,需要在拆分文件之前先删除该头。主文件的示例:使用windows批处理将文本文件拆分为多个文件,windows,batch-file,scripting,Windows,Batch File,Scripting,此批处理脚本的思想是分割一个文件,该文件包含以“/”分隔的信息行,然后根据时间戳以及作为文件扩展名的特殊关键字命名该文件。该文件还包含一个头,需要在拆分文件之前先删除该头。主文件的示例: 主收割台1 主集管8 单据(副标题) 第1行 第2行 第3行 第4行 第5行 // 文本 第1行 第2行 第3行 第4行 第5行 // 医生 第1行 第2行 第3行 第4行 第5行 // 因此,基本上,批处理脚本将主标题转换为“//”,然后使用“//”作为分隔符,将内容分解为单独的文件。每个文件将根据
- 主收割台1
- 李>
- 李>
- 主集管8
- 单据(副标题)
- 第1行
- 第2行
- 第3行
- 第4行
- 第5行
- //
- 文本
- 第1行
- 第2行
- 第3行
- 第4行
- 第5行
- //
- 医生
- 第1行
- 第2行
- 第3行
- 第4行
- 第5行
- //
因此,基本上,批处理脚本将主标题转换为“//”,然后使用“//”作为分隔符,将内容分解为单独的文件。每个文件将根据时间戳(yyyymmdd_hhmmss)和子标题“TXT”和“DOC”作为文件扩展名进行命名。 示例20140914_001411.TXT或20140914.013326
- 单个文件的示例
- 文本
- 第1行
- 第2行
- 第3行
- 第4行
- 第5行
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
设置“destdir=U:\destdir”
设置“extensions=doc txt”
设置“日期戳=%date%\uu%time%”
对于(/-“”.:)中的%%s,请设置“datestamp=!datestamp:%%~s=!”
设置“输出=”
对于(%extensions%)中的%%a,请删除“%destdir%\%datestamp%.%%a”>NUL 2>NUL
对于/f“delims=”%(q25829175.txt)中的%%a(
如果“%%a”==“/”(设置“输出=Y”&设置“外部=”
)否则(
如果定义了输出(
如果未在(%extensions%)中为%%s定义扩展名,请执行IF/i“%%a”==“%%s”设置“扩展名=%%s”
如果定义了ext(>>“%destdir%\%datestamp%”。!ext!”回显(%%a)其他(设置“output=”)
)
)
)
后藤:EOF
您需要更改destdir
的设置以适应您的环境
我在测试中使用了一个名为q25829175.txt
的文件,其中包含您的数据,但我删除了终止空格,并在每个数据部分的每一行中添加了一个字母,以便可以单独区分它们
本质上,每次遇到/
时,都会设置output
标志,并清除ext
数据。如果我们正在输出(output
set),那么如果未设置ext
,则这必须是潜在部分的第一行,因此会检查并建立它
如果ext
保持未设置状态,则此节不感兴趣,请清除输出标志,否则ext
包含节id,以便输出到该文件
您需要根据您的特殊要求操作
日期戳
。操作简单-只需查阅有关批处理子字符串的任意数量的SO文章。欢迎来到StackOverflow。不幸的是,这个问题属于“请帮我做作业”(即使它不是您的作业).StackOverflow用于询问有关代码的问题。它不是用于请求提供代码。如果您在问题上遇到了问题,您应该来询问这些问题。请参阅“主题外”第3项,此处: