Perl变量到Powershell脚本

Perl变量到Powershell脚本,perl,powershell,Perl,Powershell,我想使用从perl脚本到powershell脚本的变量来避免两种类似的操作,但我不知道如何做到这一点 Perl: # # main # ### KeyPress ### print "Indiquer l'adresse repertoire de la base a traiter :"; chomp(my $saisie = <STDIN>); #script dezippage powershell my $powershellPath ="c:\\windows\\sy

我想使用从perl脚本到powershell脚本的变量来避免两种类似的操作,但我不知道如何做到这一点

Perl:

#
# main
#


### KeyPress ###
print "Indiquer l'adresse repertoire de la base a traiter :";
chomp(my $saisie = <STDIN>);

#script dezippage powershell
my $powershellPath ="c:\\windows\\system32\\windowspowershell\\v1.0\\powershell.exe";
my $filePath ="c:\\Strawberry\\unzipper.ps1";
system("$powershellPath $filePath",$saisie);
你能帮我解决我的问题吗


谢谢

您可以为系统提供一个参数列表,这样对您来说

@cmd = ();
push(@cmd,"c:\\windows\\system32\\windowspowershell\\v1.0\\powershell.exe");
push(@cmd,"c:\\Strawberry\\unzipper.ps1");
push(@cmd,$saisie);
system(@cmd);
看看

或者您可以按如下所示滚动自己的命令,而不使用系统

#!/usr/bin/perl

use strict;

my $test = command("ls -l");
print $test;

sub command($) {

        undef $/;

        my $command = shift;

        open(COMMAND, "| $command");
        my $content = <COMMAND>;
        close(COMMAND);

        return $content;
}
#/usr/bin/perl
严格使用;
my$test=命令(“ls-l”);
打印$test;
子命令($){
未定义$/;
我的$command=shift;
打开(命令“|$COMMAND”);
我的$content=;
关闭(命令);
返回$content;
}

您可以给系统一个参数列表,这样对您来说

@cmd = ();
push(@cmd,"c:\\windows\\system32\\windowspowershell\\v1.0\\powershell.exe");
push(@cmd,"c:\\Strawberry\\unzipper.ps1");
push(@cmd,$saisie);
system(@cmd);
看看

或者您可以按如下所示滚动自己的命令,而不使用系统

#!/usr/bin/perl

use strict;

my $test = command("ls -l");
print $test;

sub command($) {

        undef $/;

        my $command = shift;

        open(COMMAND, "| $command");
        my $content = <COMMAND>;
        close(COMMAND);

        return $content;
}
#/usr/bin/perl
严格使用;
my$test=命令(“ls-l”);
打印$test;
子命令($){
未定义$/;
我的$command=shift;
打开(命令“|$COMMAND”);
我的$content=;
关闭(命令);
返回$content;
}

在PowerShell脚本中,将
$base
声明为默认值为
$(读取主机)
的参数:


当您使用
system()
调用它并传递参数时,它将自动绑定到
$base
参数。

在PowerShell脚本中,将
$base
声明为默认值为
$(读取主机)
的参数:

当您使用
system()
调用它并传递参数时,它将自动绑定到
$base
参数