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

55次阅读

共计 649 个字符,预计需要花费 2 分钟才能阅读完成。

问题

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

正文完
 0