Command line Windows 8.1命令行-输入重定向不工作

Command line Windows 8.1命令行-输入重定向不工作,command-line,windows-8.1,Command Line,Windows 8.1,各位,我正在尝试使用Windows命令行执行一些小任务。我正在测试输入重定向,但它似乎不起作用: 我创建了一个包含以下字符串的test.txt文件: *.txt 如果我键入:dir/B*.txt,我将获得目录中.txt文件的列表 如果我键入:dir/B

各位,我正在尝试使用Windows命令行执行一些小任务。我正在测试输入重定向,但它似乎不起作用:

我创建了一个包含以下字符串的test.txt文件:
*.txt

如果我键入:
dir/B*.txt
,我将获得目录中.txt文件的列表

如果我键入:
dir/B
,结果相当于
dir/B
,即忽略输入重定向。该文件是用写字板创建的。知道哪里出了问题吗

谢谢

马克斯


编辑:如果我尝试
dir/B$(
,会弹出一条错误消息:
系统找不到指定的文件

输入重定向不适用于
dir
,因为它根本不需要来自stdin的输入。如果它会对stdin做出反应,那么当您在没有任何参数的情况下运行
dir
时,它只需暂停并等待输入。 如果要从文件中读取图案,请执行以下操作:

for /f %%i in (pattern.cfg) do set pattern=%%i
dir /b %pattern%

这将把pattern.cfg文件中的最后一行(或唯一一行)推入变量模式。

输入重定向不适用于
dir
,因为它根本不需要来自stdin的输入。如果它会对stdin做出反应,那么当您在没有任何参数的情况下运行
dir
时,它只需暂停并等待输入。 如果要从文件中读取图案,请执行以下操作:

for /f %%i in (pattern.cfg) do set pattern=%%i
dir /b %pattern%

这将把pattern.cfg文件中的最后一行(或唯一一行)推到变量模式中。

略有变化,但这对我很有效:

for /f "delims=" %i in (test.txt) do set output=%i
dir /b %output% 

请注意,直接在命令行上执行此操作可以,但在批处理文件中,您应该将“%”符号加倍,如上面的答案所示。

略有变化,但这对我来说很有效:

for /f "delims=" %i in (test.txt) do set output=%i
dir /b %output% 

请注意,这可以直接在命令行上执行,但是在批处理文件中,您应该将“%”符号加倍,如上面的答案所示。

输入重定向不适用于
dir
,因为它根本不需要来自stdin的输入。输入重定向不适用于
dir
,因为它根本不需要来自stdin的输入。谢谢。我用“echo”进行了测试,它似乎也不起作用。在运行作业之前,我只是尝试测试一些命令。其中一个测试是尝试从文件重定向std输入。echo似乎也不接受。这是否意味着来自文件的输入不适用于所有命令?什么命令可以使用它?diskpart可以使用。但我想我还不明白你想要实现什么。如果您创建一个从主批处理调用的临时批处理文件,可能会更好。谢谢。这是一个解决办法。我仍然感到困惑的是,我似乎无法利用输入重定向,但至少这可以完成这项工作。谢谢你的时间:)我刚试过,没问题。您是在批处理文件中还是在cmd中执行此操作?谢谢。我用“echo”进行了测试,它似乎也不起作用。在运行作业之前,我只是尝试测试一些命令。其中一个测试是尝试从文件重定向std输入。echo似乎也不接受。这是否意味着来自文件的输入不适用于所有命令?什么命令可以使用它?diskpart可以使用。但我想我还不明白你想要实现什么。如果您创建一个从主批处理调用的临时批处理文件,可能会更好。谢谢。这是一个解决办法。我仍然感到困惑的是,我似乎无法利用输入重定向,但至少这可以完成这项工作。谢谢你的时间:)我刚试过,没问题。您是在批处理文件中还是在cmd中执行此操作?