我使用以下命令:
for %F in (*) do @echo %F %~zF
仅为了创建文件名和大小列表。输出如下:
a.txt 21
b.txt 72
3.txt 73
现在我的问题是如何将其转储到文件中?我尝试在命令末尾添加> filename.txt
,但它只将最后一个条目转储到文件中。
答案 0 :(得分:1)
这个问题:
$args = array
(
'post_type' => 'item',
'nopaging' => true,
'tax_query' => array
(
'taxonomy' => $taxonomy,
'field' => 'term_taxonomy_id',
'terms' => $term_id
),
'meta_query' => array(
'key' => 'from_import',
'value' => '1'
)
);
$posts = query_posts( $args );
...是cmd解释器将重定向视为for %F in (*) do @echo %F %~zF> filename.txt
语句的一部分,而不是@echo
的一部分。您可以使用for
附加每个循环迭代,但这样效率很低。这基本上会在每次循环迭代时打开,追加和关闭文件。
更好的解决方案是只打开输出文件一次以进行写入,并保持打开直到完成循环。您可以通过将循环括在括号中来将重定向应用于外部循环。
>>
或
> filename.txt (
for %F in (*) do @echo %F %~zF
)
......无论你喜欢什么。
答案 1 :(得分:0)
这样做:
>> filename.txt
有关命令行重定向的更多信息:
https://ss64.com/nt/syntax-redirection.html
命令> filename将命令重定向输出到文件
命令>>文件名APPEND到文件中