我开始使用excel电子表格,其中有几列(出生日期和姓氏列)。我推断并使用批处理文件来修改出生日期列,以便我现在有一个带有以下内容的文本文件(用于SQL查询):
BirthDateTime = '01/01/2017' AND Name LIKE '
BirthDateTime = '01/01/2016' AND Name LIKE '
我现在想要获取第二列(通过创建一个单独的lastname.txt文件)并将其连接到行上面的输出文件中,以便我的姓氏文件看起来像:
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
)
答案 0 :(得分:0)
Per @ Stephan的评论我刚刚开始在Excel中执行此操作并使用以下公式:
="(BirthDateTime = '"&A2&"' AND Name LIKE '%"&B2&"%') OR"
工作得很好。由于我特意询问了批处理文件,因此我不确定接受这个作为答案是否合适。如果有人有一些代码,或者如果Stephan希望将他的链接作为答案发布并对他的代码进行一些解释,我会接受,否则我会在2天内接受这个答案。
答案 1 :(得分:0)
你的问题有点令人困惑。您显示两个文本文件,但您的代码似乎使用其他一些文件(仅限日期)。无论如何 - 我涵盖了两种可能性;只需使用正确的echo
行。
要读取和合并两个文件,请使用一个小技巧(使用两种不同的方法来读取文件):
@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
另一个技巧是使用echo
转义^
语句中的结束语。如果你不这样做,那么解析器会将它作为循环结束,这将导致输出残缺并且错误消息"OR" is not recognized as a valid command ...