使用Windows批处理文件在文件的每行末尾添加逗号
我有一个批处理文件,它在几个.RTF文件(file1)中查找特定信息,然后将文档的名称放入file2。我需要创建一个逗号分隔的文件(file3),以便在命令行电子邮件程序中使用,根据file2的内容将所有file1作为附件发送 我拥有的批处理文件正确地创建了所有file1和file2。我有一个FOR语句,它在file2中的文档名末尾添加了一个逗号,并在发出ECHO命令时用逗号显示文档名 批处理文件将只将遇到的最后一个文档名/逗号输出到文件3 如何使file2中的所有文档名在每行末尾都用逗号写入file3 文件3的当前输出:使用Windows批处理文件在文件的每行末尾添加逗号,windows,batch-file,cmd,Windows,Batch File,Cmd,我有一个批处理文件,它在几个.RTF文件(file1)中查找特定信息,然后将文档的名称放入file2。我需要创建一个逗号分隔的文件(file3),以便在命令行电子邮件程序中使用,根据file2的内容将所有file1作为附件发送 我拥有的批处理文件正确地创建了所有file1和file2。我有一个FOR语句,它在file2中的文档名末尾添加了一个逗号,并在发出ECHO命令时用逗号显示文档名 批处理文件将只将遇到的最后一个文档名/逗号输出到文件3 如何使file2中的所有文档名在每行末尾都用逗号写入f
7868685425587963.rtf,
文件3的所需输出:
7868684496427836.RTF,
786868535408221.RTF,
7868685416423800.RTF,
7868685425587963.rtf,
批处理文件中的脚本:
setlocal
del file2.txt
del file3.txt
set comma=,
echo %comma%
rename *.DAT *.RTF,
findstr /m "0097" *.RTF >> file2.txt
for /f %%a In (file2.txt) DO set str=%%a%comma%
echo %str%>> file3.txt
pause
endlocal
命令行输出:几周来,我一直在断断续续地尝试解决这个问题,并尝试了多次迭代。而不是反复设置str
for /f %%a In (file2.txt) DO set str=%%a%comma%
echo %str%>> file3.txt
直接附加到文件
for /f %%a In (file2.txt) DO echo %%a%comma%>> file3.txt
代码中的问题是,命令
echo%str%
在for/F
循环之外,因此它在循环之后执行,并且只输出最后一行。他们已经展示了如何解决这个问题
但是,您不需要为任务创建临时文件file2.txt
,可以使用for/F
循环捕获findstr
命令行的输出:
>“file3.txt”(
对于/F“delims=”%%F in('
findstr/M/F:“file1.txt”“0097”
""做"(
回声(%%F,
)
)
如果要搜索当前目录中的所有.rtf
文件,而不是依赖列出.rtf
文件的文件file1.txt
,请改用此选项:
>“file3.txt”(
对于/F“delims=”%%F in('
findstr/M“0097”“*.rtf”
""做"(
回声(%%F,
)
)
>file3.txt(对于/f%%a In(file2.txt)DO echo(%%a%逗号%)
请从cmd窗口复制文本-不要发布图片链接。