提供批处理文件输入的Perl脚本

时间:2012-03-18 07:09:22

标签: perl

我有一个使用Perl运行的批处理文件“Sample.bat”:system("Sample.bat");

Sample.bat提示输入用户名和密码,这些用户名和密码是我想用Perl脚本提供的。例如,当我使用Perl运行此批处理文件时:

Enter username:
Enter password:

我必须使用Perl脚本提供这两件事。

批处理文件:

@echo off
set /p username=Enter your username:%1
set /p password=Enter your password:%2

Perl脚本:

my $username="Shaggy";
my $password="shaggy";

my $setup = "C:/sample.bat";
system("$setup $username $password");

2 个答案:

答案 0 :(得分:1)

使用Win32::GuiTest模块

use strict;
use warnings;
use Win32::GuiTest qw[ SendKeys ];

system 1, q["start sample.bat"];

SendKeys( 'username~');

SendKeys( 'password~');

请注意~符号用于Enter键,即您在执行期间不必使用Enter键。请使用~登录SendKeys方法。
更新:移除%1%2并尝试上述脚本。

答案 1 :(得分:0)

尝试:

my $username = 'yourusername';
my $password = 'yourpassword';
system("Sample.bat $username $password");

然后在批处理文件中,您将使用%1作为用户名,使用%2作为密码。

有关在批处理文件中使用参数的详细信息,请参阅:How do I pass command line parameters to a batch file?