[英]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.