问题
在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 >
也复制进去了!