[英]How do you correctly handle redirection in FOR loop in one line of command?
我想输出文件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所示,我需要直接在命令行中而不是在批处理脚本中编写此代码。
>copy-cat.txt (FOR /F "delims=" %G in (cat.txt) DO @echo %G)
for
输出 echo
命令本身,请在命令前使用@
前缀以不回显echo
(单个命令echo off
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.