【问题标题】:Redirecting output to a file also includes the name of the file I'm redirecting to?将输出重定向到文件还包括我要重定向到的文件的名称?
【发布时间】:2013-09-13 00:48:47
【问题描述】:

我正在使用一个简单的目录命令 我在目录中有一个文件

   C:\tokyo\scripts\notempty>dir /b /a-d

1.pst

到目前为止一切顺利

当我将结果重定向到文件中时

    C:\tokyo\scripts\notempty>dir /b /a-d > test

我明白了

     C:\tokyo\scripts\notempty>type test
     1.pst
     test

问题:为什么我正在创建的文件名 (test) 会出现在文件中? 该文件应仅包含 1.pst。

有人可以帮忙吗?这让我发疯。

谢谢 马特

【问题讨论】:

    标签: windows shell batch-file scripting redirect


    【解决方案1】:

    在文件dir 执行之前,文件test 已经被shell (command.com/cmd.exe) 初始化,以打开重定向输出,这也是dir 看到它的原因。如果不是 shell,那么它可能是一个像 DOS 本身一样的较低级别的系统,但概念是相似的。

    【讨论】:

    • 谢谢 .. 那么我该如何解决这个问题呢?
    • 我只想在输出文件的目录中包含文件名。
    • @mattbeyond 您可以将其重定向到另一个目录或先将其放在那里,然后将文件移回,例如dir /a-d /b >c:\temp\test & move c:\temp\test . 在过去的 DOS 中,c:\temp 是常用的临时目录。如果没有,您可以创建它。
    • 实际上另一种方法是使用find /v,但也可以排除其他匹配项。我说的是更清洁的方法。
    • 好的,谢谢 - 我明白了。您建议的第一个解决方案有效.. 我只是认为必须有更好的方法将目录中的文件列表重定向到文件而不创建临时文件。我在 unix os 下没有这个问题。请问有什么建议吗?
    猜你喜欢
    • 2014-11-22
    • 2016-08-09
    • 2013-10-11
    • 2023-03-19
    • 2014-03-31
    • 1970-01-01
    • 1970-01-01
    • 2012-05-21
    • 2021-11-04
    相关资源
    最近更新 更多