Batch file 将文本文件行合并为行批处理文件
我从一个excel电子表格开始,它有两列(一列是出生日期,一列是姓氏)。我推断并使用了一个批处理文件来修改“出生日期”列,因此现在我有了一个包含以下内容的文本文件(用于SQL查询): 现在,我想获取第二列(通过创建一个单独的lastname.txt文件),并将其合并到第行上方的输出文件中,这样我的姓氏文件如下所示:Batch file 将文本文件行合并为行批处理文件,batch-file,cmd,Batch File,Cmd,我从一个excel电子表格开始,它有两列(一列是出生日期,一列是姓氏)。我推断并使用了一个批处理文件来修改“出生日期”列,因此现在我有了一个包含以下内容的文本文件(用于SQL查询): 现在,我想获取第二列(通过创建一个单独的lastname.txt文件),并将其合并到第行上方的输出文件中,这样我的姓氏文件如下所示: SMITH JONES 将合并到一个新的输出文件,如下所示: (BirthDateTime = '01/01/2017' AND Name LIKE '%SMITH%') OR (
SMITH
JONES
将合并到一个新的输出文件,如下所示:
(BirthDateTime = '01/01/2017' AND Name LIKE '%SMITH%') OR
(BirthDateTime = '01/01/2016' AND Name LIKE '%JONES%') OR
不幸的是,我是批处理文件的新手,我只是不知道从哪里开始。我在下面包含了我用来创建第一部分的批处理文件
批处理文件:
@echo off
setLocal EnableDelayedExpansion
for /f "tokens=* delims= " %%a in (input.txt) do (
set /a N+=1
echo BirthDateTime = '%%a' AND Name LIKE '>>output.txt
)
根据@Stephan的评论,我刚开始在Excel中执行此操作,并使用以下公式:
=“(BirthDateTime=”&A2&“,名字像“%”&B2&“%”或“
”,效果很好。因为我特别询问了批处理文件,所以我不确定是否适合接受这一回答。如果有人有一些代码,或者如果Stephan想把他的链接作为一个答案,并在他的代码中加入一些解释,我会接受,否则我会在2天内接受这个答案。你的问题有点让人困惑。您显示了两个文本文件,但您的代码似乎使用了其他一些文件(仅限日期)。无论如何,我涵盖了这两种可能性;只需使用正确的echo
行即可
要读取和合并两个文件,请使用小技巧(使用两种不同的方法读取文件):
@echo关闭
延迟扩展
如果这是一次性任务,则在EXCEL中手动插入列要容易得多。。。。否则,请查看如何同时读取两个文件。
@echo off
setLocal EnableDelayedExpansion
for /f "tokens=* delims= " %%a in (input.txt) do (
set /a N+=1
echo BirthDateTime = '%%a' AND Name LIKE '>>output.txt
)
@echo off
setlocal enabledelayedexpansion
<t2.txt (
for /f "delims=" %%a in (t1.txt) do (
set /p name=
echo (%%a!name!'^) OR
REM echo (BirthDateTime = '%%a' AND Name LIKE '!name!'^) OR
)
)>out.txt
type out.txt