关于powershell:在windows的powershell里如何输入输出重定向

问题

在windows pwsh里输入输出重定向的语法是什么?

在Linux里咱们应用以下命令:

$ ./program < input.txt > output.txt

如果我想在windows里达到雷同的目标, 我须要应用什么指令?

答复

在windows上你不能间接把文件挂载到规范输出(stdin)里, 然而仍有其余的办法

PS > Get-Content input.txt | ./program > output.txt

验证

这里有一个非常简单的程序, 它单纯从规范输出流里获取数据, 而后输入到规范输入流里

// demo.cpp
#include <iostream>

int main(int argc, char const *argv[])
{
    int data;
    while (std::cin >> data)
    {
        std::cout << data << std::endl;
    }
    
    return 0;
}

↓ input.txt ↓ 其中EOF代表输出截至, 起的成果和ctrl + z一样

1
2
3
EOF

将其编译成为可执行文件demo.exe

PS > get-content .\input.txt | .\demo01.exe > output.txt

执行完后↓ output.txt ↓

1
2
3

的确无效! get-content会获取input.txt文件的内容, 而后通过管道流传给demo01.exe

事实上如果你的PC上有git bash也能够很不便的像linux一样输入输出重定向

留神: 如果你应用的是CMD, 则下面的指令是有效的, 该命令只能会在powershell中失效, 另外, 不要把PS > 也复制进去了!

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理