• ベストアンサー

ファイル名が記入されたファイルを読み込んでcdする

ファイル名が記入されたファイルを読み込んでカレントディレクトリを変更するにはどうしたら良いでしょうか?   具体的に申し上げると、    カレントディレクトリに filepass.txt というファイルが存在し、 中身には、例えば、 C:\Software と書かれています。   MATLABで、 filepass.txtを読み込み、 中に書かれている、 ディレクトリ名に、   カレントディレクトリを変更する(cd) にはどうしたらよいでしょうか?

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

  • ベストアンサー
  • chie65535
  • ベストアンサー率43% (8517/19361)
回答No.1

filepass.txtを普通にfopenして、変数に1行読み込んで、ファイルをクローズしてから cd(読み込んだ文字変数) ってやれば、カレントディレクトリが変更されます。 fid = fopen('filepass.txt'); dirstr = fgetl(fid); fclose(fid); cd(dirstr); 因みに「ディレクトリの位置」を意味する「パス」の綴りは「pass」ではなくて「path」です。 なので「filepass.txt」じゃなくて「filepath.txt」が正しいファイル名です。

cheepyon
質問者

お礼

的確かつ素早いご回答ありがとうございます!! ネ申ですか? 感動しました!!

関連するQ&A

  • マクロに関して、ファイル名を一列目に記入する方法。ただし、ファイルの中身の行数だけ記入したい

    はじめまして、エクセルのマクロでお聞きしたいことがあり 質問させていただいております。 自分で考えろと言われればそれまでですが、 まったくのど素人のためやり方を教えていただけないでしょうか よろしくお願いいたします。 下記のようなテキストファイルが多数あるときに すべてのテキストファイルをひとつのエクセルシートに一列目にファイル名を記入されている状態で 次々に貼り付けたいと考えております。 例として ============ ファイル名:clw○○○.txt ファイルの中身は下記 20100410 C:▽▽ 20100410 C:○○ ============ ============ ファイル名:clw▽▽▽.txt ファイルの中身は下記 20100410 C:▽▽ 20100410 C:○○ 20100410 C:■■ ============ ↓(下記が完成イメージ) 一列目にファイル名を記入。 ただし、ファイルの中身の行数と同じ位置まで記入する A B C clw○○○ 20100410 C:▽▽ clw○○○ 20100410 C:○○ clw▽▽▽ 20100410 C:▽▽ clw▽▽▽ 20100410 C:○○ clw▽▽▽ 20100410 C:■■ 以上、よろしくお願いいたします。

  • grepでファイル名を取得したい。

    いま以下の構成になっています。 カレントディレクトリの(ディレクトリを除く)ファイル名を取得し,list.txtに出力する作業をやってます。 そういうオプションがあれば良いのですがなかなか見つかりません。知恵をお貸しください。 list -F |& grep (???) > list.txt -Fでディレクトリの最後に/がつくので,(???)の部分でそれらのファイルを除く,とする方針…?と思ったのですが,うまいやり方が見つかりません。 よろしくお願いします。

  • バッチファイルでパスとファイル名を併記した一覧を書き出したい

    バッチファイルでパスとファイル名を併記した一覧を書き出したい いつもお世話になってます。また相談させていただきたいです。 下のようにバッチファイルでカレントフォルダ内のパスとファイル名を併記し、ファイル名一覧を書き出したいのですが、 c:\test\123.txt c:\test\abc.txt ・ ・ c:\test\いろは.txt 欲をいえば下の様に、 "c:\test\123.txt" "c:\test\abc.txt" ・ ・ "c:\test\いろは.txt" 『dir /b /w *.*> fname_ichiran.txt』 ↑ ↑ ↑ をどのように変更すれば良いのでしょうか? 今回もどなた様かお知恵を貸して下さい。よろしくおねがいします。

  • cat `find ./` > for_print.txt にファイル名を入れたい!

    カレントディレクトリ以下のファイルを連結したいのですが、 cat `find ./` > for_print.txt に「ファイル名」と、 あと、「区切り」がわかるように ******************************** を入れたいのですが、 どうしたら良いでしょうか?

  • ファイルの中の文字を検索してパスとファイル名と行を調べたいのですが

    現ディレクトリからどこかにある(カレントディレクトリもしくは下の階層)ファイルの中の文字を探して、パスとファイル名と行番号を表示させるにはどうすればいいのでしょうか (例)例 現Cドライブ→下のフォルダ→下のフォルダ→下のフォルダ→xxx.txtの中に含まれる文字 abc(10行目)を探したい 結果 c/フォルダ/フォルダ/フォルダ/xxx.txt 10行目 findとgrepでなんとかできそうな気がするのですが どなたかわかる方教えてください

  • cat でファイルの拡張子を指定

    基本的なことで申し訳ないんですが、 UNIXのcat コマンドでファイルの中身を出力するときに、カレントディレクトリでないファイルを出力するには、パスも書きますよね。 cat パス/ファイル名 catでパスを指定して使うときに、 パスを繰り返し書かないで、 (その指定したディレクトリ直下だけでいいので)複数の特定の拡張子のファイルのみ出力するには、どうすればよいのですか? 例えば、 拡張子が、cとcsとtxtのファイルだけ出力して、その他のファイルは出力しない というようなときです。 既に書いたとおり、パスは繰り返して書かないので、 cat パス/*.c パス/*.cs パス/*.txt のようなものはナシということでお願いします。

  • ファイルの中身に対する再帰的検索

    初心者です。 テキストファイルの中身を調べて、その中に特定の拡張子を持ったファイル名があれば更にその中身を調べていって、階層構造になったファイルを全て調べあげるスクリプトを作ろうとしています。 例えばfile1.txtの中身が ... hoge file2.txt file3.txt hogehoge ... だったとすれば、今度はfile2.txtおよびfile3.txtの中身に.txtという拡張子を持ったファイル名があるかどうか調べ、該当するものが無くなるまで調べていきます。 これらのテキストファイルは全て同じディレクトリ内に存在します。 どういう具合のループにすればよいのか想像がつきません。 アドバイスお願いします。

    • ベストアンサー
    • Perl
  • fopenでファイル名に、変数を使いたい

    カレントディレクトリにある「1.txt」を扱う場合は fp = fopen("./1.txt", "r"); 上記で出来るのですが、扱いたいファイルが複数あり、 「./x.txt」 として、「x」の値を変えながら複数のファイルを取り扱いと考えております。 char namae[2]={'1','2'}; for(x=0;x<2;x++) fp = fopen("./%c.txt",name[x], "r"); とやってみたのですが、 「fopenの呼び出しに余分なパラメータがある」と出てしまいます。 どのようにしたら、よろしいでしょうか?

  • batファイルでrenameができません。

    Windowsのbatファイルでrenameをするにはどうすればよいでしょうか? カレントディレクトリ └ A というディレクトリ構造があって、Aの中には「a.txt」があるとします。 カレントディレクトリから、 「rename "./a/A.txt" B.txt」 と書いてあるbatファイルを起動しても、「a.txt」の名前が変更されません。 「指定したパスが見つかりません。」と出てきてしまいます。 ダブルクォーテーションを取ったりつけたり、絶対パス、相対パスを書いたりと いろいろ試しましたがだめでした。 何か方法はないでしょうか?

  • XPバッチプログラムについて

    すいませんおしえてください windowsXPでバッチファイルを作成しています。 動作内容は↓の通りです。 (1)バッチファイルが置いてあるカレントディレクトリ配下にある複数のディレクトリから、ファイル名に「test」を含む.txtファイルを カレントディレクトリにコピーする。(これをカレントディレクトリ配下のディレクトリがなくなるまで繰り返す) ※簡単に言うと、1つ下のディレクトリからコピーしてくるということです。 (2)既にカレントディレクトリに同じ名前のファイルが存在する場合は自動的に連番して上書きしないようにコピーする。 今、(1)については下記の通り作成して動作確認しましたが、このままでは複数のディレクトリに同じファイル名が 存在する場合に上書きされてしまいます。 (2)についてなかなか上手くコーディングできないのですが↓のプログラムに追加すればよいものを教えていただけますでしょうか? もしくは、全体的に間違っていれば、その部分もご指摘お願い致します。 @echo off for /d %%d in (*) do ( if exist %%d\*test*.txt copy %%d\*test*.txt *test*.txt ) 以上、よろしくお願い致します。

専門家に質問してみよう