• ベストアンサー

Windows Dosコマンドで

WinXP HE あるいは PEでのお話です。 Dosコマンドで(バッチ処理をさせたいのですが)、 あるテキストファイルの1行目の先頭文字2文字を 切り取って標準出力する方法はあるのでしょうか? いろいろ調べてみたのですが、 UNIXほど強力なテキストエディット機能が無いようで困っています。

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

  • ベストアンサー
  • pita-gora
  • ベストアンサー率70% (102/145)
回答No.5

制限付きですがバッチのみで行う例です。 echotop sample.txt と指定することで、sample.txt の1行目の先頭2文字を表示します。 ---------------------------------------- echotop.bat @echo off for /F "delims=" %%l in (%1) do set x=%%l && goto :break exit /b :break echo %x:~0,2% ----------------------------------------- ただし、テキストファイル中にリダイレクション ">", "<" や パイプ "|" などの特殊文字があるとうまく動作しません。

houko
質問者

お礼

明確なご回答、誠にありがとうございました。 やっと、どうにか目的を果たす事ができました。

その他の回答 (4)

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.4

No.1です。 WSHを使ってみました。 test.vbsという名前で以下の1行の内容のファイルを作り、バッチと同じフォルダに置きます。 WScript.StdOut.Write WScript.StdIn.Read(2) & vbCrLf バッチの中から以下のように呼び出して使います。 cscript //B test.vbs < test.txt

  • koko_u
  • ベストアンサー率12% (14/116)
回答No.3

Windows PowerShell なんてのもあるで。 ( Get-Content -Path target.txt )[0].Substring(0, 2) とか。

  • JAWS55
  • ベストアンサー率38% (176/452)
回答No.2

標準コマンドでも、環境変数にファイル1行目の文字列をセット(for文)してから、setで環境変数の1文字目から2文字を切り出し、標準出力に出来そうです。 しかしUnixLikeのコマンドを使った方が簡単でしょうね。

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.1

UNIXのコマンドをご存じならば、Cygwinを入れてheadやcutを使うのが手っ取り早いと思います。

houko
質問者

補足

本来そうなんですけど、今回UNIXコマンドは使えない環境におりまして・・・。 cutコマンドが使えれば、こんな楽な話は無いのですが。