Perl-скрипт, обеспечивающий ввод в командный файл - PullRequest
2 голосов
/ 18 марта 2012

У меня есть пакетный файл "Sample.bat", который я запускаю с использованием Perl: 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 ]

1 голос
/ 18 марта 2012

Использование 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 и попробуйте скрипт выше.

0 голосов
/ 18 марта 2012

Попробуйте:

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

Затем в командном файле вы будете использовать %1 для имени пользователя и %2 для пароля.

Для получения дополнительной информации об использовании параметров вкомандный файл, см .: Как передать параметры командной строки в командный файл?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...