- ベストアンサー
Windows Dosコマンドで
WinXP HE あるいは PEでのお話です。 Dosコマンドで(バッチ処理をさせたいのですが)、 あるテキストファイルの1行目の先頭文字2文字を 切り取って標準出力する方法はあるのでしょうか? いろいろ調べてみたのですが、 UNIXほど強力なテキストエディット機能が無いようで困っています。
- みんなの回答 (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% ----------------------------------------- ただし、テキストファイル中にリダイレクション ">", "<" や パイプ "|" などの特殊文字があるとうまく動作しません。
その他の回答 (4)
- ham_kamo
- ベストアンサー率55% (659/1197)
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)
Windows PowerShell なんてのもあるで。 ( Get-Content -Path target.txt )[0].Substring(0, 2) とか。
- JAWS55
- ベストアンサー率38% (176/452)
標準コマンドでも、環境変数にファイル1行目の文字列をセット(for文)してから、setで環境変数の1文字目から2文字を切り出し、標準出力に出来そうです。 しかしUnixLikeのコマンドを使った方が簡単でしょうね。
- ham_kamo
- ベストアンサー率55% (659/1197)
UNIXのコマンドをご存じならば、Cygwinを入れてheadやcutを使うのが手っ取り早いと思います。
補足
本来そうなんですけど、今回UNIXコマンドは使えない環境におりまして・・・。 cutコマンドが使えれば、こんな楽な話は無いのですが。
お礼
明確なご回答、誠にありがとうございました。 やっと、どうにか目的を果たす事ができました。