プロが教えるわが家の防犯対策術!

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

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

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

A 回答 (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%
-----------------------------------------

ただし、テキストファイル中にリダイレクション ">", "<" や パイプ "|" などの特殊文字があるとうまく動作しません。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/04/02 13:39

No.1です。


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

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

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

Windows PowerShell なんてのもあるで。



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

とか。
    • good
    • 0

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


しかしUnixLikeのコマンドを使った方が簡単でしょうね。
    • good
    • 0

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

この回答への補足

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

補足日時:2007/01/22 00:32
    • good
    • 0

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