问题

在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一样

123EOF

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

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

执行完后↓ output.txt ↓

123

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

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

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