将dir输出重定向到我的可执行文件

时间:2015-04-09 13:19:18

标签: batch-file cmd

我写了一个简单的命令行c程序并使其可执行。 它应该将文件名作为输入并对文件执行一些操作。

我的任务是从dir /s /b *.c命令获取输入并将其重定向到我的可执行文件Link.exe

我是这样尝试的:

dir /s /b *.c | Link.exe

但它不会这样。

如果我们在Link.exe文件的右侧提供文件名,它的唯一方法就是。

3 个答案:

答案 0 :(得分:1)

您需要编写Linke.exe以便从stdin获取输入。例如,在C ++程序中就像:

#include <iostream>
#include <string>

int main() {
    std::string s;
    while(std::cin >> s)
      std::cout << s << std::endl;
}

答案 1 :(得分:1)

由于Link.exe可以将文件名作为参数,因此可以通过dir循环运行for命令,并使用for变量作为Link.exe的参数

for /f %%A in ('dir /b /s *.c') do Link.exe "%%A"

请注意,如果您在命令行而不是批处理文件中运行此操作,则需要将%%A替换为%A

答案 2 :(得分:-1)

您应该将其更改为

dir /s /b */c > Link.exe

注意在Windows中,它应该是有角度(大于)符号才能将输出流式传输到另一个程序。

要测试此功能,您可以像

一样运行样本测试
dir > abc.txt

上述语句的输出将导致当前目录中的文件列表被附加到abc.txt中。