【问题标题】:How to execute multiple commands through perl script如何通过perl脚本执行多个命令
【发布时间】:2016-10-04 19:28:37
【问题描述】:

我正在尝试使用 perl 来运行两个不同的命令 - 这两个命令都需要在单独的命令提示符下执行。

以下是一些细节:

当我跑步时

system('start cmd /k "cd c:\PerlExamples && perl Perl_Ex_1.pl"');

它按预期工作 - 它打开一个新的命令提示符、指向我需要的目录的路径并运行我的脚本。

但是,我想在每次运行不同的示例脚本时循环使用这个 system... 命令。 但是当我运行以下代码行时,

my $cmd = "perl Perl_Ex_1.pl";
system("start cmd /k cd c:\PerlExamples && $cmd");

它会打开一个新的命令提示符和我需要的目录的路径。但它在原始窗口中而不是在新打开的命令提示符中运行我的示例脚本。

我有办法做到这一点吗?

谢谢。

【问题讨论】:

  • 你试过/c而不是/k吗?我现在无法测试(没有可用的 Windows)。或者尝试不使用start
  • 问题是我需要保持那个窗口打开而不是关闭它。
  • 可能是因为第二个命令中的 `cd c:\PerlExamples && $cmd` 周围没有引号?
  • @user2243865 如果我用引号括起来,它会将 $cmd 视为字符串的一部分而不是变量。

标签: perl command-line


【解决方案1】:

感谢perl僧侣的智慧,我找到了解决问题的方法。

解决方案链接: http://www.perlmonks.org/?node_id=1173278

解决方案是使用:

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 ];

谢谢。

【讨论】:

    猜你喜欢
    • 2015-10-30
    • 1970-01-01
    • 2011-06-17
    • 2018-08-13
    • 2012-10-20
    • 1970-01-01
    • 2019-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多