如何执行 perl 程序以及通过相同的 Windows 批处理文件给用户输入

Posted

技术标签:

【中文标题】如何执行 perl 程序以及通过相同的 Windows 批处理文件给用户输入【英文标题】:How to execute perl program as well as give user input via same Windows batch file 【发布时间】:2014-04-05 08:14:32 【问题描述】:

我的批处理文件如下所示:

perl program.pl
input.txt  

我的 perl 程序通过用户输入请求输入文件。但是当我运行我的批处理文件时,它只是启动一个 perl 程序,但不会在下一行自动提供 "input.txt" 作为用户输入。 如何完成。

【问题讨论】:

您可以考虑更改您的 Perl 程序以查看它是否以参数启动,并使用该参数(如果指定)作为文件名而不询问用户。然后你可以做'perl program.pl input.txt' 【参考方案1】:

以这种方式“执行”您的批处理文件:

cmd < theFile.bat

更多详情,请参阅this post。

【讨论】:

【参考方案2】:
echo input.txt|perl program.pl

在您的批处理文件中,您有两个命令。一个用于启动 perl 程序,另一个用于打开 input.txt 文件。每行一个命令。

如果您希望批处理文件将字符串input.txt 发送到perl 程序,请使用echo 命令将字符串发送到stdout,并将stdout 通过管道传输到perl 程序的stdin。

【讨论】:

用这个衬垫测试过:echo testing| perl -e "$_=&lt;&gt;;chomp;$_=reverse$_;print qq$_\n"

以上是关于如何执行 perl 程序以及通过相同的 Windows 批处理文件给用户输入的主要内容,如果未能解决你的问题,请参考以下文章

lamp安装以及介绍

Perl线程介绍

凭据提供程序通过网络进行通信

Perl 和 Unix 如何以相同的顺序对 Unicode 字符串进行排序和排序?

如何使用 shell 脚本拦截 perl 脚本的执行,然后实际执行它们?

如何让 Perl 和 Python 打印正在执行的程序的每一行?