忍者ブログ
おかげさまでspamコメントが増えてきましたので、一応コメントを承認制にしました。基本的には承認します。
[346] [345] [100] [344] [343] [142] [321] [342] [341] [340] [339]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

年末なので加筆修正しました(一年間の検索フレーズをみてたら,わりとこの語句が上位にきていたので).もとは,TeX限定の話でした(タイトルが,texinst757 内部コマンドまたは外部コマンド,操作可能なプログラムまたはバッチ ファイルとして認識されていません だった.このエラーメッセージの対策です,基本的には)が,このメッセージそのものはTeXに限ったことではありませんので,一般論を書きますが,一般論にするとちょっと読者は減るかもしれませんね(もっといい,歴史のある解説ページがあるので).

まず,前提として,多くの(全ての?)コマンドラインインタプリタ(wikipedia;コマンドラインインタプリタ参照.ようするに,windowsのcmd.exeとか,UNIX(におけるシェル,という言い方が正しいんですかね)とか,まあmatlabもそうなんでしょうね,みたいなアレですよ,あれ.)では,現在「いる」(作業をしている)ディレクトリ(フォルダの別名だと思ってもらえれば良いと思います)の中にあるファイルしか(基本的には)探せない/扱えないのです.従って,たとえばダウンロードしてきたファイル.(なんでもいいんですが上の例だとtexinst757.zip),そのファイルが現在いるディレクトリに存在しなくてはならないわけですね.

具体的に言えば,現在作業をしているディレクトリが,C:¥usr¥loc¥binで,ダウンロードしたファイルがあるディレクトリがC:¥tempだとすると,C;¥usr¥loc¥binに自分がいるうちは,C:¥tempにあるファイルを使うことができない,ということですね(ディレクトリの記載法には色々な流儀がありますが,windowsは確かこんな感じですよね?¥はバックスラッシュ(\)かも).

余談ながら一般的な現在いるディレクトリを表示するコマンドは,

pwd (print working directoryに由来するそうです)
です.また,ディレクトリを移動するコマンドは,
cd ディレクトリ名 (たとえば, cd C:¥usr¥loc¥bin とかね)
です.

さて,はじめの

'texinst757'は内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません
に戻りますと,これは要するに、カレントディレクトリ(ようは今「いる」ディレクトリ)に「texinst757.zip」ファイルがないので、「texinst757」なんてここにはないですよ、というエラーメッセージです(たぶんね)

回避方法のひとつは、身もフタもないですが,カレントディレクトリにtexinst757.zipファイルを置けばいいんですね.別にC:¥usr¥loc¥binで展開しても(そのディレクトリ内にあっても)困らないならば,

copy texinst757を置いたディレクトリ¥texinst757 今のディレクトリ
(コマンドプロンプト以外の多くのインタプリタだと,cp 元ファイル(フルパスで) 対象のディレクトリ になりましょうか)
とか.あるいは,GUIの方で,そのファイルをコピー&ペーストしたっていいんです.

もうひとつは、フルパス(絶対パス)でtexinst757を呼び出すこと

たとえば、c:\tmp\local\bin\texinst757.zipとか
ですね.ディレクトリ階層の一番上からファイルまでの道筋(tmpフォルダを開いて,localフォルダを開いて,binフォルダを開いた中にtexinst757.zipがあるよ!という)をフルパス(絶対パス)と言う訳ですね,蛇足ながら.これがまあ確実と言えば確実でしょうか

あるいは、今texinst757.zipというファイルがあるディレクトリに「パスを通す」ことです。これが,環境によってやり方が全然違うんで,困っちゃうところですが,迷走:TeXを使えるようになろう(3)も参照してください.

Windowsのコマンドプロンプトだと、

Path = 通したいパス名;%path%
ここでは,path = C:¥tmp¥local¥bin¥; %path% かな.
とするとパスが通るようです(道案内ができる)。ただ,バージョンによって違ったりするので,"windows path"なんかで検索して確かめてみてください.

また,しょっちゅう利用するファイルの場合(texinst757なんかはインストールの時しか使わないんだから,いらない用な気もしますが)毎回毎回パスを通すのが面倒ですので、Autoexec.batというファイルに、事前にパスを書き込んでおくこともできます。再起動しないと有効になりませんので、要注意です。

ちなみに、Matlabだと、addpathというコマンドがあり,

addpath ('C:\personal\matlab')
等とするとそのディレクトリにパスが通ります(以前,addpath =と書いておりましたが,こうするとaddpathという変数名にパスが代入されてしまうだけなので,ダメです.すいません.. .また,少なくとも2007bでは,パスを通したいファイルのあるディレクトリに移動して,ファイル名がワークスペースかどっかに出ると思うんですが,それを右クリックで,フォルダにパスを通す,とか,フォルダとサブフォルダにパスを通す,ということも指摘できて便利だったりします.ちなみに,「フォルダとサブフォルダにパスを通す」のほうをコマンドで実現するには,
addpath(genpath('トップフォルダのフルパス'))
たとえば,addpath(genpath('D:¥usr¥mne')とか
とすると,D:¥usr¥mne¥toolboxなどといった指定したトップフォルダ(ここでは¥usr¥mne)下にあるフォルダにもパスが通ります.genpathそのものは,
genpath directory
でそのディレクトリ下のディレクトリを全て示すもので,
p = genpath('directory')
等とすると,pにdirectoryのサブディレクトリが代入されます,ということらしいですね.あと,あんまりやったことはないのですが,startup.mファイルを起動時に読み込むようですので,そのファイルに上記のコマンドラインを挿入しておけば,いちいちaddpathを指定しなくて良いでしょう.

MacOSXの場合がまだピンと来てないのですが,aliasを作成するという手があります.大雑把にいって,aliasを作るというのは,自分で使える新しいコマンドを作る,ということになります.従って,

alias optseq2 ="/users/watanabehayato/downloads/optseq2"のように,
alias 新しくつくりたいコマンド名="実行したいファイルまでのフルパス"
とすれば,パスを通したのと同様になりますよね?(不安)aliasを解除するときは,
unalias optseq2
とすれば無くなりますのでご安心ください.

大変長くなりました.なお,パスが通ってないファイル名を指定したときのMacOSXのメッセージは,

command not found
または,No such file or directory
とかです.簡にして明.

拍手[5回]

PR

コメント


コメントフォーム
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード
  Vodafone絵文字 i-mode絵文字 Ezweb絵文字


トラックバック
この記事にトラックバックする:


忍者ブログ [PR]
カレンダー
09 2019/10 11
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
メールはこちらから
プロフィール
HN:
渡辺隼人
性別:
男性
ブログ内検索
カウンター
コガネモチ