我想输出文件cat.txt的内容并使用FOR / F循环将它们保存在另一个文本文件中(在标准cmd shell的一行命令中。)
例如,这是源文件。
# content of cat.txt:
meow
meo
me
m
使用此命令后,我有一些意想不到的结果:
FOR /F "tokens=*" %G in (cat.txt) DO echo %G > D:\copy-cat.txt
# I got output:
meow > D:\copy-cat.txt
meo > D:\copy-cat.txt
me > D:\copy-cat.txt
m > D:\copy-cat.txt
据我所知,在这种情况下,重定向受到回声的影响,因此被识别为字符串并被回显。
问题:如何在语义上将代码分开,以便我可以将写入stdout的所有内容重定向到D:\ copy-cat.txt?
注意:正如您在%G中看到的那样,我需要直接在命令行中编写,而不是在批处理脚本中编写。
答案 0 :(得分:1)
>copy-cat.txt (FOR /F "delims=" %G in (cat.txt) DO @echo %G)
for
输出echo
命令本身,请使用带@
的命令前缀不回显echo
(单个命令echo off
)