3

私は以下のようなことをするPerlプログラムを持っています:

#!/usr/bin/env perl    
use strict;
use warnings;

my $exe = "C:\\project\\set_env_and_run.bat";

my $arg1 = "\\\\Server\\share\\folder1";    
my $arg2 = "D:\\output\\folder1";

my $cmd = "$exe \"$arg1\" \"$arg2\"";    
my $status = system("$cmd > c:\\tmp\\out.txt 2>&1");

print "$status\n";

この Perl コードを eval ブロッ​​クで呼び出しています。呼び出されると、ステータスが 0 として出力されますが、バッチ ファイルは実際には実行されていません。この理由は何でしょうか?上記の「システム」呼び出しに問題はありますか?

ありがとう、ジッツ

4

4 に答える 4

1

バットファイルが実行されていないことを確認してください。私はあなたのコードを取得し、私のマシンに存在しないパスを修正しました。バッチファイルを呼び出すようにします

echo In myrun  1=%1  2=%2

そして、出力ファイルに以下を書き込みます

 In myrun  1="\\Server\share\folder1"  2="D:\output\folder1"
于 2010-05-25T21:56:51.597 に答える
1

あなたが使用できる

 system ("start C:\\project\\set_env_and_run.bat");
于 2014-07-22T07:18:58.523 に答える
1

二重引用符内のバックスラッシュをエスケープする必要があります。

my $exe = "C:\\project\\set_env_and_run.bat";
...
my $status = system("$cmd > c:\\tmp\\out.txt 2>&1");
于 2010-05-25T18:47:15.893 に答える