如何通过perl脚本执行多个命令
我正在尝试使用perl运行两个不同的命令—这两个命令都需要在单独的命令提示符中执行 以下是一些细节: 当我跑的时候如何通过perl脚本执行多个命令,perl,command-line,Perl,Command Line,我正在尝试使用perl运行两个不同的命令—这两个命令都需要在单独的命令提示符中执行 以下是一些细节: 当我跑的时候 system('start cmd /k "cd c:\PerlExamples && perl Perl_Ex_1.pl"'); 它按预期工作-它打开一个新的命令提示符,指向我需要的目录的路径,并运行我的脚本 但是,我想使用这个系统。。。循环中的命令,每次运行不同的示例脚本时。 但当我运行以下代码行时 my $cmd = "perl Perl_Ex_1.pl";
system('start cmd /k "cd c:\PerlExamples && perl Perl_Ex_1.pl"');
它按预期工作-它打开一个新的命令提示符,指向我需要的目录的路径,并运行我的脚本
但是,我想使用这个系统。。。循环中的命令,每次运行不同的示例脚本时。
但当我运行以下代码行时
my $cmd = "perl Perl_Ex_1.pl";
system("start cmd /k cd c:\PerlExamples && $cmd");
它会打开一个新的命令提示符和我需要的目录路径。但它在原始窗口中运行我的示例脚本,而不是在新打开的命令提示符中运行
我有办法做到这一点吗
谢谢。多亏了perl僧侣们的智慧,我找到了问题的解决方案 链接到解决方案: 解决方案是使用:
my $cmd = "perl Perl_Ex_1.pl";
system(qq{start cmd /k "cd c:\\PerlExamples && $cmd"});
或使用:
my $cmd = "perl Perl_Ex_1.pl";
system qq[ start /D c:\\PerlExamples cmd /k $cmd ];
谢谢。你试过用
/c
代替/k
吗?我现在无法测试(没有可用的窗口)。或者尝试不使用start
。问题是我需要保持该窗口打开,而不是关闭它。可能是因为在第二个命令中,`cd c:\PerlExamples&&$cmd`周围没有引号?@user2243865如果我在其周围加上引号,它会将$cmd视为字符串的一部分,而不是变量。