我有一个使用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");
答案 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?