- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MS-DOSでperl実行時にコマンドプロンプトが認識されず困っていま)
MS-DOSでperl実行時にコマンドプロンプトが認識されず困っていま
このQ&Aのポイント
- MS-DOSでperl実行時にコマンドプロンプトが認識されず困っています。
- Active Perlをインストールして、Tera-Padでスクリプトを書き、MS-DOSでテストしています。
- "du"や"ls"などのコマンドを(``)で囲ってスクリプトに記述すると、「`du`は内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません」というエラーが出てしまいます。
- みんなの回答 (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を使う
お礼
kmeeさん、ありがとうございました。 WindowsでのActive Perl+MS-DOSの環境はテスト環境で、実際にはLinux端末なのです。 ご教示くださった内容を踏まえ、どちらでも動くように汎用的に作るには 「同等の処理をPerlで作る」が妥当なのかな、と理解しました。 解決法がわかり、大変助かりました。 どうもありがとうございました。