我想输出文件cat.txt的内容,然后使用/f loop(在标准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
我理解在这种情况下,重定向受Echo的影响,因此被认为是字符串并回声。
问题:如何将代码分开,以便我可以将所有写入stdout的内容重定向到d: copy-cat.txt?
注意:正如您可以通过%g看到的那样,我需要直接在命令行中,而不是在批处理脚本中编写。
>copy-cat.txt (FOR /F "delims=" %G in (cat.txt) DO @echo %G)
- 而不是重定向每个输出线,而是重定向完整的
for
输出 - 要避免包含
echo
命令本身,请使用@
的命令前缀不呼应echo
(单命令echo off
(