• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MS-DOSでperl実行時にコマンドプロンプトが認識されず困っていま)

MS-DOSでperl実行時にコマンドプロンプトが認識されず困っていま

このQ&Aのポイント
  • MS-DOSでperl実行時にコマンドプロンプトが認識されず困っています。
  • Active Perlをインストールして、Tera-Padでスクリプトを書き、MS-DOSでテストしています。
  • "du"や"ls"などのコマンドを(``)で囲ってスクリプトに記述すると、「`du`は内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません」というエラーが出てしまいます。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

バッククオートでくくられた文字列は、それを外部コマンドとして実行し、その出力結果になります。 Windows + Active Perl の場合なら、シェルとしてcmdか使われると思います。 lsやduはunixでは標準とも言えるコマンドです。 Perl の一部ではありません。別物です。 Windowsにも入っていません。 対策としては ・ls、du等のUnix系のツールのWindows移植版を使う  例えば http://gnuwin32.sourceforge.net/ ・同等の処理をPerlで作る ・同等の処理をする別コマンドで代用する  ls→DIR 等。オプションや表示が変わるのでスクリプトにも変更が必要 ・MinGW,Cygwin等の環境をインストールして、それ用のPerlを使う ・仮想環境でLinux等のunix系のOSを使う

rosafilipes
質問者

お礼

kmeeさん、ありがとうございました。 WindowsでのActive Perl+MS-DOSの環境はテスト環境で、実際にはLinux端末なのです。 ご教示くださった内容を踏まえ、どちらでも動くように汎用的に作るには 「同等の処理をPerlで作る」が妥当なのかな、と理解しました。 解決法がわかり、大変助かりました。 どうもありがとうございました。

関連するQ&A

専門家に質問してみよう