• ベストアンサー

名前をつけて保存する

コマンドライン上に出力された結果を、コマンドライン上でファイル名を指定し、テキストファイルとして保存することは出来ますでしょうか? 作成するファイルは、作業中のフォルダに新規作成する、としたいのですが… たとえば、 カレントディレクトリがC\:/aaaであるとして、 bbb.cを実行したとき、 ----- 以下コマンドライン上の出力 ----- C:\aaa>aaa 1~nまでの素数を表示します nを入力 : 50 1~50までの素数は 2,3,5,7,11,13,17,19,23,29,31,37,41,43,47 です。 保存するファイル名を入力 : ccc.txt (ccc.txtと入力してenterを押すと保存) C:\aaa -------------- ここまで -------------- 上記の結果の、『1~nまでの…』から『です。』までを、ccc.txtとしてディレクトリC\:/aaaに新規作成したいのですが… どなたか出来る方がいらっしゃいましたら、ぜひご教授お願い致します。 もし、C言語でこのようなコトをするのは不可能であるのならば、『無理ですよ』という旨を伝えて頂ければ結構でございます。

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

  • ベストアンサー
  • clsdi99
  • ベストアンサー率63% (31/49)
回答No.1

できますよ。 ファイルに保存するのではなくコマンドライン上でなら 質問者の方は出来るのですよね? コマンドラインに表示する際に使用する関数printfが ありますがこれと同じような関数fprintf を利用すれば 出来ます。

kanami_6_18
質問者

お礼

fprintfなんて関数があったんですね。 無知ゆえに、そんな関数があることを知りませんでした… fprintfを使うコトで、いとも簡単に出来ました。 どうもありがとうございました。

その他の回答 (2)

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.3

リダイレクトすればよいのでは? bbb.exeの標準出力をccc.txtに書き込むのであれば、 bbb > ccc.txt ですみます。 どうしてもC言語で実現したのであれば、#1の方が回答されているように、printf → fprintfのように書き換えるか、freopenでstdoutを別のファイルに結びつければ可能になります。

kanami_6_18
質問者

お礼

今回はCのプログラムの中で実現したかったので、#1の方の方法を使わせていただきました。 ご回答いただき、大変ありがとうございました。

  • du0315
  • ベストアンサー率20% (1/5)
回答No.2

ちなみに、UNIXには、まさにその目的のための script というコマンドが存在します。 $ script ファイル名 とすると、それ以降のコマンド入力と出力の内容が、ファイルに出力されていきます。 最後は $ exit で終わります。 Linuxなどが身近にあれば、そのソースを見てみてはいかがでしょうか?無くてもWebで探せばあるのでは・・・??

kanami_6_18
質問者

お礼

私はどうにもUNIXにあまり良いイメージがないもので、もっぱらWinユーザーです(笑 でも友人がUNIX環境なので、教えてあげたいと思います。

関連するQ&A

  • ファイルから検索条件を読み込んでGREPを実行したい

    INPUTファイルを以下のように作成します。 >input.txt aaa bbb ccc ・ ・ ・ 特定のディレクトリの複数ファイルに対して grepを順にaaa,bbb,ccc・・・ というようにinput.txtから読み込んで実行し、結果をそれぞれaaa.txt,bbb.txt,ccc.txt・・・ へ出力したいのですが、方法がわからなくて困っています。 どなたかご教授お願いいたします。

    • ベストアンサー
    • Perl
  • diffコマンドにてテキスト出力

    こんばんは。教えてください! 以下のような2つのファイルがあるとします。 ・aaa.txt abc111 abc222 abc333 ・bbb.txt abc333 abc444 これを比較して、比較結果をテキスト出力したいです。 テキスト出力したい比較結果は (1)重複しているもの全てテキスト出力 (2)aaa.txtのみにあるものをテキスト出力 (3)bbb.txtのみにあるものをテキスト出力 また、(1)~(3)は別々のファイルに出力したいです。 diffコマンドで、 diff a.txt b.txt >> c.txt とすると、 1つのテキストファイル(c.txt)に (1)~(3)すべてが書かれてしまいます。 環境は、windows XPにてCygwinを使用しています。 diffコマンドでなくても構いません。 宜しくお願いします。

  • xcopyで特定のファイルのみをコピーする方法

    xcopyもしくはcopyコマンドを使用し、ディレクトリ内の特定のファイル(複数)を コピーするにはどのようにしたら良いのでしょうか? 特定のファイルの数が多すぎるため、一行ずつコマンドを書くのは手間が掛るため、 何か良い方法があれば教えて頂きたいと思います。 excludeオプションを使用すれば特定のファイルを除外できるようですが、 反対の意味の特定のファイルのみをコピーしたいです。 例) c:\test内は以下のファイルがあります。 ・aaa.txt ・bbb.txt ・ccc.txt ・ddd.txt ・eee.txt これらのファイルの内、bbb.txtとddd.txtとeee.txtをコピーしたいです。

  • FTPで一覧リストを作成し取得(Get)したい

    VBで、FTPサーバに接続し、指定のディレクトリーからいくつかのファイルをダウンロードしています。ダウンロードするファイル数が沢山あり、出来る事なら、そのディレクトリー内のファイル名の一覧リストがほしいのです。DOSコマンドから見るときは、'ls'や'dir'は使えるのですが、一覧の作成ができません。DOSプロンプトからFTPサーバをOPENし、dir > aaa.txt と入力すると自端末のC:\document and Settings\自分のフォルダー配下に、そのaaa.txt は作られるのですが、中身が入ってきません。ファイルの一覧がほしいとき、VBではどのようにコーディングすればいいのでしょうか。教えていただければ本当に助かります。よろしくお願いいたします。

  • UNIXのコマンド教えて下さい。

    UNIXで、lsの結果をファイルに出力する際、 ls > aaa.txtのようにすると出来ますが、 実行したコマンド "ls -la > aaa.txt" もファイルに出力させたいのですが、どうすれば出来ますか? 知ってる方教えて下さい!

  • perlを使ったファイルの入出力について

    perl 初心者です。 perl を使ってデータ整理を試みていますが、方法がわからなくて困っています。 やりたい操作は、 1、ディレクトリ内にある特定の拡張子をもつすべてのデータファイルを読み込む 2、データソート 3、データファイル名を変更せずに、ソートしたデータを出力する 例 ディレクトリに以下のデータファイルがあるとします aaa.data bbb.data ccc.data : zzz.data これらのデータファイルをすべて読み込み、中身を整理した後に aaa.txt bbb.txt ccc.txt : zzz.txt となるように、それぞれのデータの名前を変更せずに出力したいと思っています。 スクリプトのサンプルなんかがあればありがたいです。

    • ベストアンサー
    • Perl
  • カレントフォルダ以下のファイルの検索と結合バッチファイルの記述のしかたを教えてください。

    初心者です。 バッチファイルを作りたいのですが、 記述方法を教えていただきたいのです。 1のフォルダに、 ・aaa.txt ・bbb.txt ・ccc.txt があり、 2のフォルダにも ・aaa.txt ・bbb.txt ・ccc.txt があるような構造で、そのようなフォルダは複数あり、 それぞれaaa.txt bbb.txt ccc.txtが入っています。 これを、最終的には 同じファイル名は1ファイルにまとめて tougou_aaa.txt というテキストを作りたいと思っています。 まとめたテキストの中は、フォルダ1~複数(数は場合により違います)のaaa.txtが縦にずらっとくっついた状態です。 これを、b c d f~(ファイルの数も場合により異なりますが、上限はあり、ファイル名も固定です。)ファイルまですべて行い、 tougou_bbb.txt tougou_ccc.txt なども一度にできてほしいのです。 わかる方がいらっしゃれば、何卒宜しくお願い致します。

  • 行数ごとに検索をかけて並び替えをしたいのですが・・

    数千のファイル名が書かれたテキストファイルがあります。(Aとします。) /yyy/ccc.txt /aaa/aaa.txt /bbb/bbb.txt /sss/aaa.txt /ccc/bbb.txt /zzz/ccc.txt ・ ・ ・ ユニークファイル名だけ書かれたファイルがあります。(Bとします。) aaa.txt bbb.txt ccc.txt ・ ・ ・ Bの行数1行ずつAで検索をかけ、ファイル名を新しいファイル(Cとします)に書き出したいのです。 /aaa/aaa.txt /sss/aaa.txt /bbb/bbb.txt /ccc/bbb.txt /yyy/ccc.txt /zzz/ccc.txt ・ ・ ・ シェルを使ってやりたいのですが、どのようにすればいいのか見当もつきません。 どなたかお分かりのかたいましたら教えてください。よろしくおねがいします。

  • 10進数→2進数の出力について

    コマンドライン引数から10進数の値を入力して 2進数に変換して出力しようとしています。 ※入力される10進数の値はかなり大きなものを想定しています。 現在は下記のようなコードで変換しようとしていますが失敗しています。 動作環境は『WindowsXP、Activeperl-5.12.4.1205』です。 拙い説明ですが、よろしくお願いいたします。 # コマンドライン引数は「9223372036854775808」 $n = unpack("B8", pack("C", $ARGV[0])); print n; # 実行結果は「11111111」 # 期待している出力結果は「1000・・・000」(←0が64個) 9223372036854775808

    • ベストアンサー
    • Perl
  • コマンドプロンプトのリダイレクト方法

    コマンドプロンプトで、フォルダ名を一旦 foldername.txt に書き出してから、 リダイレクトでコマンドの入力を、ファイルから読み取る、という事をしたいのですがうまくいきません。 dir /b > C:\\foldername.txt で、フォルダ名を取り出してから、(foldername.txt には MAY-07 と記述されます) cd < C:\\foldername.txt > C:\\aaa.txt (cd MAY-07、と記入されたaaa.txtを作成したい) ですが、実際に実行してみると、 cd 0<C:\\foldername.txt 1 > C:\\aaa.txt となってしまいます。。 (aaa.txtには、cd(空白) としか記入されていません) どうしてでしょうか?(´Д⊂ ちょっと質問の意図が分かりづらいでしょうか…; 申し訳ありません; お分かりになる方がいらっしゃいましたら、どうかご教授お願い致します!

専門家に質問してみよう