Perlでfcコマンドを実行する場合、
system 'fc E:\A\B\x.exe F:E:\A\B\x.exe';
では、うまくいきますが、
引数を変数で指定するにはどのように
記述すればよいのでしょうか。
(Active Perl ,Windows7)
my $filename1="E:\A\B\x.exe";
my $filename2="F:\A\B\x.exe";
system 'fc $filename1 $filename2'; <--- (NG)
system "fc $filename1 $filename2"; <--- (NG)
system fc $filename1 $filename2; <--- (NG)
system "fc $filename1 $filename2"; には問題がなく、それ以前の代入文を変更する必要があります。
my $filename1='E:\A\B\x.exe';
my $filename2='F:\A\B\x.exe';
or
my $filename1="E:\\A\\B\\x.exe";
my $filename2="F:\\A\\B\\x.exe";
上記のようにすれば、文字列中にバックスラッシュがそのまま残ります。
> my $filename1="E:\A\B\x.exe";
> my $filename2="F:\A\B\x.exe";
ダブルクォート文字列ではバックスラッシュが解釈されるので、上記の時点で文字化けしています。次のようにすれば、確認することができます。
print "$filename1\n$filename2\n";
質問者
お礼
print "$filename1\n$filename2\n"; はOKですが、
system "fc $filename1 $filename2";
ではうまくいきません。
この部分をどのように記述すればよいのでしょうか。
お礼
教えていただきましたようにしましたら 正しく実行することができました。 ありがとうございました。