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