• ベストアンサー
  • 困ってます

Windows Dosコマンドで

  • 質問No.2684984
  • 閲覧数1219
  • ありがとう数1
  • 気になる数0
  • 回答数5
  • コメント数0

お礼率 38% (8/21)

WinXP HE あるいは PEでのお話です。

Dosコマンドで(バッチ処理をさせたいのですが)、
あるテキストファイルの1行目の先頭文字2文字を
切り取って標準出力する方法はあるのでしょうか?

いろいろ調べてみたのですが、
UNIXほど強力なテキストエディット機能が無いようで困っています。

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

  • 回答No.5
  • ベストアンサー

ベストアンサー率 70% (102/145)

制限付きですがバッチのみで行う例です。
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

お礼率 38% (8/21)

明確なご回答、誠にありがとうございました。
やっと、どうにか目的を果たす事ができました。
投稿日時:2007/04/02 13:39

その他の回答 (全4件)

  • 回答No.4

ベストアンサー率 55% (658/1196)

No.1です。
WSHを使ってみました。
test.vbsという名前で以下の1行の内容のファイルを作り、バッチと同じフォルダに置きます。

WScript.StdOut.Write WScript.StdIn.Read(2) & vbCrLf

バッチの中から以下のように呼び出して使います。
cscript //B test.vbs < test.txt
  • 回答No.3

ベストアンサー率 12% (14/116)

Windows PowerShell なんてのもあるで。

( Get-Content -Path target.txt )[0].Substring(0, 2)

とか。
  • 回答No.2

ベストアンサー率 38% (176/452)

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

ベストアンサー率 55% (658/1196)

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

お礼率 38% (8/21)

本来そうなんですけど、今回UNIXコマンドは使えない環境におりまして・・・。
cutコマンドが使えれば、こんな楽な話は無いのですが。
投稿日時:2007/01/22 00:32
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ