命令shell中的2个或多个FOR循环将文件行1与文件行1和& c合并

时间:2010-05-24 17:14:30

标签: windows

我正在尝试构建一个ldif导入文件。我有2个文件,一个有DN,另一个有employeeNumber,它们匹配行的行。

这是不起作用的代码:

@echo on

::设置BATCH输入目录 设置batchdir = e:\ Meta

::设置包含服务器列表的输入文件 设置infile =%batchdir%\ DDNs3 设置infile2 =%batchdir%\ DDNs4

::如果存在,我们删除输出文件 Rm DDNs3.ldif

:: For循环下面处理输入列表中的每一行。   FOR / F“tokens = * delims =”%% i IN(%infile%)do(   FOR / F“tokens = * delims =”%% k IN(%infile2%)do(           Echo dn:%% i           回声改变类型:修改           回声替换:employeeNumber           Echo employeeNumber:%% k  )  )>> DDNs3.ldif

我尝试了几种变体,包括:

:: For循环下面处理输入列表中的每一行。   FOR / F“tokens = * delims =”%% i IN(%infile%)do(           Echo dn:%% i           回声改变类型:修改           回声替换:employeeNumber   FOR / F“tokens = * delims =”%% k IN(%infile2%)do(           Echo employeeNumber:%% k           回声。  )  )>> DDNs3.ldif

2 个答案:

答案 0 :(得分:0)

使用2循环遍历文件中的所有行,并将输出写入名为例如全部.txt。而不只是写每一行,在第一行的前缀为0001A,0002A,0003A,...(假设文件包含少于9999行,如果它们包含更多行,则使用更多'零')。同样,在第二个文件的行前面加上0001B,0002B,0003B等等。

然后使用SORT命令对生成的文件的内容进行排序。

最后,使用for循环遍历生成的文件并再次从文件中删除第一个字符。

我不知道FOR命令的完整语法,但这个技巧应该足以帮助你进一步。

答案 1 :(得分:0)

尝试Unix的cat工具。