Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl ssh到windows计算机并执行bat文件_Perl_Cygwin - Fatal编程技术网

Perl ssh到windows计算机并执行bat文件

Perl ssh到windows计算机并执行bat文件,perl,cygwin,Perl,Cygwin,我的.bat文件驻留在windows中,我希望通过ssh从Linux调用它。我已经在windows中安装了cygwin,并且能够通过ssh连接到机器。我想编写一个Perl脚本来连接到windows服务器并执行.bat文件 完成这类任务的方法是 例: use Net::SSH qw(ssh issh sshopen2 sshopen3); ssh('user@hostname', $command); issh('user@hostname', $command); ssh_cmd('use

我的.bat文件驻留在windows中,我希望通过ssh从Linux调用它。我已经在windows中安装了cygwin,并且能够通过ssh连接到机器。我想编写一个Perl脚本来连接到windows服务器并执行.bat文件

完成这类任务的方法是

例:

use Net::SSH qw(ssh issh sshopen2 sshopen3);

ssh('user@hostname', $command);

issh('user@hostname', $command);

ssh_cmd('user@hostname', $command);
ssh_cmd( {
  user => 'user',
  host => 'host.name',
  command => 'command',
  args => [ '-arg1', '-arg2' ],
  stdin_string => "string\n",
} );

sshopen2('user@hostname', $reader, $writer, $command);

sshopen3('user@hostname', $writer, $reader, $error, $command);
使用以下任何一项:

:易于使用,在Windows上不工作,但可以连接到Windows主机。 :不太容易使用,在任何地方都可以使用。 :上述模块的包装器,带有易于使用的API。尽管如此,仍然不完整。 例如:

use Net::SSH::Any;
my $ssh = Net::SSH::Any->new($host, user => $user, password => $password);
my @output = $ssh->capture('c:\foo.bat');

我对Net::SSH::Any感到厌倦,但它抛出了以下错误。在串联中使用未初始化的值。或位于/usr/lib/perl5/site/Net/SSH/Any.pm第388行的字符串。在清理中转到未定义的子例程&main::DESTROY at/usr/lib/perl5/.8.8/Net/SSH/Any.pm第388行。您能描述一下您的本地环境吗?OS、perl和模块版本?