将 Excel VBA 变量传递给 Perl?
Passing Excel VBA variables to Perl?
是否可以在不使用 Batch 作为网关的情况下将变量从 excel 传递到 perl 脚本(VBA -> Batch -> Perl),如果不可能,我该如何发送批处理变量到 Perl?
你不能传递变量 to/between 脚本,但你可以传递值 to/between 进程.
这样做的方法几乎是无限的。将值从一个进程传递到另一个进程的最常见方法是通过命令行参数。 This 显示如何从 VBA.
执行另一个程序(例如批处理文件)
下面是这样一个批处理文件的示例,它向 Perl 脚本传递参数,然后打印出来。
>type a.bat
@echo off
echo Start of batch file
perl a.pl %*
echo End of batch file
>type a.pl
use strict;
use warnings;
use feature qw( say );
say 'Start of Perl script';
say for 0+@ARGV, @ARGV;
say 'End of Perl script';
>a.bat abc "123 456" def
Start of batch file
Start of Perl script
3
abc
123 456
def
End of Perl script
End of batch file
是否可以在不使用 Batch 作为网关的情况下将变量从 excel 传递到 perl 脚本(VBA -> Batch -> Perl),如果不可能,我该如何发送批处理变量到 Perl?
你不能传递变量 to/between 脚本,但你可以传递值 to/between 进程.
这样做的方法几乎是无限的。将值从一个进程传递到另一个进程的最常见方法是通过命令行参数。 This 显示如何从 VBA.
执行另一个程序(例如批处理文件)下面是这样一个批处理文件的示例,它向 Perl 脚本传递参数,然后打印出来。
>type a.bat
@echo off
echo Start of batch file
perl a.pl %*
echo End of batch file
>type a.pl
use strict;
use warnings;
use feature qw( say );
say 'Start of Perl script';
say for 0+@ARGV, @ARGV;
say 'End of Perl script';
>a.bat abc "123 456" def
Start of batch file
Start of Perl script
3
abc
123 456
def
End of Perl script
End of batch file