Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Windows批处理文件在文件的每行末尾添加逗号_Windows_Batch File_Cmd - Fatal编程技术网

使用Windows批处理文件在文件的每行末尾添加逗号

使用Windows批处理文件在文件的每行末尾添加逗号,windows,batch-file,cmd,Windows,Batch File,Cmd,我有一个批处理文件,它在几个.RTF文件(file1)中查找特定信息,然后将文档的名称放入file2。我需要创建一个逗号分隔的文件(file3),以便在命令行电子邮件程序中使用,根据file2的内容将所有file1作为附件发送 我拥有的批处理文件正确地创建了所有file1和file2。我有一个FOR语句,它在file2中的文档名末尾添加了一个逗号,并在发出ECHO命令时用逗号显示文档名 批处理文件将只将遇到的最后一个文档名/逗号输出到文件3 如何使file2中的所有文档名在每行末尾都用逗号写入f

我有一个批处理文件,它在几个.RTF文件(file1)中查找特定信息,然后将文档的名称放入file2。我需要创建一个逗号分隔的文件(file3),以便在命令行电子邮件程序中使用,根据file2的内容将所有file1作为附件发送

我拥有的批处理文件正确地创建了所有file1和file2。我有一个FOR语句,它在file2中的文档名末尾添加了一个逗号,并在发出ECHO命令时用逗号显示文档名

批处理文件将只将遇到的最后一个文档名/逗号输出到文件3

如何使file2中的所有文档名在每行末尾都用逗号写入file3

文件3的当前输出:

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窗口复制文本-不要发布图片链接。