我创建了一个包含以下字符串的test.txt文件:
*.txt
如果我输入:dir /B *.txt
,我会获得目录中的.txt文件列表。
如果我键入:dir /B < test.txt
,结果等同于dir /B
,即忽略输入重定向。该文件是使用wordpad创建的。什么出错了?
谢谢,
最高
修改:如果我尝试dir /B $( < test.txt)
,会弹出一条错误消息:The system cannot find the file specified
答案 0 :(得分:0)
输入重定向不适用于dir
,因为它根本不期望来自stdin的输入。如果它会对标准输入做出反应,那么当您运行dir
而没有任何参数时,它只会暂停并等待输入。
如果你想从文件中读取模式,请执行以下操作:
for /f %%i in (pattern.cfg) do set pattern=%%i
dir /b %pattern%
这会将pattern.cfg文件中的最后一行(或唯一一行)推送到变量模式中。
答案 1 :(得分:0)
略有变化,但这对我有用:
for /f "delims=" %i in (test.txt) do set output=%i
dir /b %output%
请注意,这可以直接在命令行中使用,但在批处理文件中,您应该将&#39;%&#39;如上面的答案所示的标志。