windows - 一个接一个地通过管道将参数传递给系统的外部命令

标签 windows perl

我正在尝试使用系统调用从 Perl 打开外部命令。我在 Windows 上工作。我怎样才能一个接一个地向它传递参数?

例如:

system("ex1.exe","arg1",arg2",....); 

这里 ex1.exe 是外部命令,我希望它先处理 arg1,然后再处理 arg2,依此类推...

非常感谢您的回复,

最佳答案

使用 pipe open :

use strict; 
use warnings;

{
    local ++$|;

    open my $EX1_PIPE, '|-', 'ex1.exe' 
        or die $!;

    print $EX1_PIPE "$_\n"
        for qw/arg1 arg2 arg3/;

    close $EX1_PIPE or die $!;
}

我假设您想将数据通过管道传输到 ex1.exe 的 STDIN;例如,如果 ex1.exe 是以下 perl 脚本:

print while <>;

然后如果你运行上面的代码你的输出应该是:

arg1
arg2
arg3

关于windows - 一个接一个地通过管道将参数传递给系统的外部命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4028405/

相关文章:

windows - Windows 的 Docker 桌面在使用公司代理进行搜索/构建时失败

c - 根据列合并两个文件并排序

perl - 什么是我的 Cache::Memcached::Fast $class = shift;在 Perl 中?

c++ - NetBeans 在编译 C++ 项目时无法执行 Perl 脚本

windows - 将文件从 Windows 复制到远程 Linux 系统的 BAT 脚本

windows - 多线程:事件驱动与消息驱动

windows - Windows 上的同居 Docker 和 VirtualBox

regex - 使用正则表达式解析许可证文件

windows - 使 perl 应用程序在代码中启动时运行的最简单方法

c - 哪个结构用于从 REG_FULL_RESOURCE_DESCRIPTOR 类型的注册表值数据中提取信息?