dポイントプレゼントキャンペーン実施中!

バッチファイルでリダイレクトしたファイルがcat
で読めない。

これは、標準出力では無くてエラー出力となってい
るのだろうか。とすると、全手のエラー出力が今は
読めなくなっているのだろうか。

済みません。読める方法を伝授願います。

質問者からの補足コメント

  • うーん・・・

    リダイレクトしていない01.m3はcatで読めます。
    他のは一切が読めません。

    No.1の回答に寄せられた補足コメントです。 補足日時:2017/02/27 14:30
  • うーん・・・

    済みません。嘘を付いていました。気を悪くされたら済みません。
    実は、コマンドプロンプトで動作していたので無条件にgit bash
    でも動いていた物と思い確認は取っていませんでした。

    コマンドプロンプトでは動いていますが。git bashでは動いていま
    せん。と言うのは、ls - lで見た時にrwxの所がxになっていません。
    それでchmode +xをしましたが。xのフラグがつきません。これと
    言うのは、私のユーザーに対しての実行の権限の設定とかが有るので
    しょうか。

    私は普通に何もしなくても動く物と思っていた物ですから。唯ここで
    catで読めないと言う事は全てがリダイレクトになっているので単に
    実行しなければ、単に初期化をするだけですから。当然にファイル
    サイズはゼロです。なので読めなかったと言う事です。

    実行するための方法はどうすれば良いのでしょうか。

    No.2の回答に寄せられた補足コメントです。 補足日時:2017/02/27 18:48
  • うーん・・・

    下記のURLにはどうもwindowsのgit bashではchmodは
    動かない様です。
    https://cheaparchitec.wordpress.com/2016/04/14/g …でchmodが効かない件/

    今迄はC言語だけでしか使って来なかったのですが。拡張子がexeだと実行するみたいです。ですから、今回のは無理と諦めるしかないのでしょうか。助けて下さい。

      補足日時:2017/02/27 19:08
  • うーん・・・

    どうも噛み合わない様なので、再度質問を出します。
    互いの思い込みの強差は尋常じゃない様なので。
    知らない人は、知らないと言うだけですよ。
    知っていれば、誰が聞いても分かる質問を出します。
    それって言うのは、結局は知っていると言う事なんですよ。
    それを知らない人に言い方が可笑しいと言ってもそれは
    知っている人の話では有りません。
    現実はそれで成り立っているのですよ。
    だって、私が若しも知っていると言う立場だったら
    辻褄が合わない時は、何か隠している。あるいは、嘘をついている。
    と言う事ですよ。その様な回答では、実際の現場では何の役にも
    立ちません。現場は知らない人の集まりですから。然し、それでも分かる人は
    分かるんですよ。余り、質問者に要望を言っても分からないから聞いているのですよ。
    回答者が若しも、答えに窮する時は質問者に無理自慰をしてはいけません。

      補足日時:2017/02/27 20:43

A 回答 (3件)

何を言っているのかさっぱりわからない. どのような操作をしてどのような結果を期待したところ実際にはどのようになったのか, 具体的に

書いてもらえませんか?
この回答への補足あり
    • good
    • 0
この回答へのお礼

有難う御座います。

下記のバッチファイルを走らせた時に全ての
リダイレクトしたファイルが読めません。
バッチファイルの内容は下記です。
perl 01.pl 01.m3>01.m4
m4 01.m4>01.txt
nkf -s 01.txt>02.txt
sed -e "/^$/d" 02.txt>03.txt
clip < 03.txt

全て中身はテキストファイルです。
尚、これは実際にデータは入っています。
コマンドプロンプトでは、読めます。

何処が違うのでしょうか。

お礼日時:2017/02/27 14:28

私からしても、どんな状況だかさっぱりわかりません。



>下記のバッチファイルを走らせた時に全ての
> リダイレクトしたファイルが読めません。
> バッチファイルの内容は下記です。
> perl 01.pl 01.m3>01.m4
> m4 01.m4>01.txt
> nkf -s 01.txt>02.txt
> sed -e "/^$/d" 02.txt>03.txt
> clip < 03.txt

・この「バッチファイル AAA.BAT」 を、bashで「実行した」
→そのとき、どんな風にコマンドで入力したのですか?
 bashで実行するには、bashの流儀に従う必要があります。
・そのとき、リダイレクトされたファイルが「catで読めない」
→「読めない」とはどんな状況なのですか?
 ・01.m4,01.txt,03.txt のファイルが存在しない
 ・存在するけど、サイズが違う
 ・存在するけど、文字化けする
→「catでは読めない」とは、どんな状況なのですか?
 ・cat 01.m4 で何も表示されないまま終了する
 ・cat 01.m4 で文字化けした何かが表示されて終了する
 ・cat 01.m4 とすると、エラーメッセージを出して終了する
 ・vi 01.m4 では読める。
 ・vi 01.m4 でも読めない。


> 中身とこれがどう言う理由で必要なのかが分からない。

「本来○○になるはずである→それが××になっている」

「○○にならない理由として考えられること: 1-1,1-2,...」
「××になる理由として考えられること: 2-1,2-2,...」

「1-1をチェックした。問題ない」
「2-1であっても、○○になるはずだから関係ない」
...
「考えられる原因は 1-5である」

確認、修正 → 駄目だったら分析しなおし


これが、不具合を直す時の基本のやりかたです。

今、あなたから出ている情報は「catで読めない」だけです。
これでは、「理由として考えられること」が多過ぎて、絞り込むことができません。

これで、例えば「文字化けする」という意味だとわかれば、考えられる候補は絞り込めます。
慣れた人なら、文字化け後の文字列を見て、どのコードをどのコードとして解釈したか予想が付きます。(EUC-JPをSJISとして表示しようとした、とか)

ところが、「読めない」=「何も表示されない」だと、文字化けでの対策はまったく無意味になります。
まったく別の観点での確認が必要になります。


病院行って「お腹が痛い」と言えば、いつから?とか、熱は?とかいろいろ聞かれますよね?
あれと同じことです。
いろんな状況から、原因を突き止め、それに対処しなければなりません。
何を聞かれても「腹が痛い」だけでは、治しようが無いのです。
    • good
    • 1
この回答へのお礼

有難う御座います。

補足をしっかりと読んで下さい。説明しています。

お礼日時:2017/02/27 20:32

単純に > でリダイレクトすると, 標準出力は指定したファイルに出力されるが標準エラー出力はファイルにはいかない. だからファイルサイズを見ればわかる. だから「これは、標準出力では無くてエラー出力となっているのだろうか」についてはあなたが調べればわかるはずだ.



次に「catでファイルを表示しない」とか「catで読めない」というのは, 実際にはどのような現象を指しているのでしょうか? 例えば, 0バイトのファイルや空白文字のみからなるファイルは実際に cat で出力しても目には見えませんが, そのような状況なのでしょうか? それとも, cat による表示が想定していたものと違っているのでしょうか? 後者だとしたら, 本来どのような表示がされるべきところどのように表示されてしまっているのか, 例示してもらえませんか?

「本来の表示と異なる」というなら, od(1) を使えばわかりそうなものだが....
この回答への補足あり
    • good
    • 0
この回答へのお礼

有難う御座います。何と言って良いのか。私の話をちゃんと聞いている
のだろうか。ちゃんとコマンドプロンプトで読めると書いているでしょ
うが。話を聞いていないのだろうか。

コマンドプロンプトで読めると言う事は、ファイルサイズがゼロで無い
事は明らかでしょうに。サイズをどうしてここで聞いて来るのだろう
か。読めると言う事は、サイズが有るからでしょうが。

本来どう表示されるも、何も他のではきちんと読めているのだか
ら。何を言わんかです。中身とこれがどう言う理由で必要なのかが分か
らない。

要は、中身とは関係無しにコマンドプロンプトでは読めているのにも関
わらずにgit bashでは読めないと言う事を言っているのですが。話を良
く聞いて下さい。

私の質問の何処が分からないのかと言う所が分からない。私のどこが理
解出来ないのかを私に分かる様に説明をして来れないと私は答え様が有
りません。

その上での答えですから。道はかなりに遠いですね。ヒントはリダイレクト
してないファイルはcatで読めていると言う事です。

宜しくです。

お礼日時:2017/02/27 16:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!