※ ChatGPTを利用し、要約された質問です(原文:perlでコマンドプロンプト実行)
perlでコマンドプロンプト実行
このQ&Aのポイント
現在、jperlを使用し、あるフォルダ内の中にあるサブフォルダをlaplusを使用しコマンドラインから圧縮をかけるというスクリプトを作成しています。
しかし、特定のロジックを実行するとエラーが発生し、正常に圧縮がされません。
おそらく「Program Files」の半角スペースが原因であると考えられますが、正しい方法がわかりません。
いつもお世話になります。
現在、jperlを使用し、
あるフォルダ内の中にあるサブフォルダをlaplusを使用し
コマンドラインから圧縮をかけるというスクリプトを作成しております。
そこで、下記ロジックを実行するとエラーになります。
【ロジック】
$cmd = "\"c:\\Program Files\\Lhaplus\\Lhaplus.exe\" /c:lzh
o:\"C:\\Users\\testtaro\\Documents\\LAPLUS_TEST\"
\"C:\\Users\\testtaro\\Documents\\LAPLUS_TEST\\2011-03-11(0100)\"";
system($cmd);
【エラーメッセージ】
'c:\Program' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
「$cmd 」の内容をデバック出力しそれを直接コマンドプロンプトで実行すると
正常に圧縮されます。
おそらく「Program Files」の半角スペース内で切れてしまっているのだと思いますが、
ダブルクォテーションでくくるやり方が間違っているのでしょうか。
超初心者の質問で大変申し訳ありませんが宜しくお願いします。
お礼
ありがとうございました! 引き継いだものをそのまま使い続けていたため 最新バージョンにするというステップを失念していました。 早速試してみます!