Command line Windows 8.1命令行-输入重定向不工作
各位,我正在尝试使用Windows命令行执行一些小任务。我正在测试输入重定向,但它似乎不起作用: 我创建了一个包含以下字符串的test.txt文件: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
*.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中执行此操作?