重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

下記のようなことができるバッチファイルを作成できないかと思ってます。

一つのフォルダに
複数のテキストファイルがあり、
そのテキストファイルの
指定した行と
その指定した行の3番目~5番目の文字を抽出したい考えてます。

フォルダ内の情報は、下記の感じです。
フォルダ内(フォルダ名:folder)には、このようなファイルがあります。
ファイル名: testX.txt
ファイル内容:
1:aaa 2:bbb
3:ccc 4:ddd

ファイル名: textY.txt
ファイル内容:
1:ooo 2:ppp
3:qqq 4:rrr

ここでは、2行目の「ccc」と「qqq」を考えてます。

皆さんからのご教示頂けると幸いです。

宜しくお願い致します。

A 回答 (2件)

この質問ならバッチファイルの達人が現れてすぐに解決、と思っていたのですがなかなか現れないので回答させて頂きます。



@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET /A LN=%2
SET /A LN-=1
SET /A SP=%3
SET /A SP-=1
IF "%LN%" GTR "0" (
SET LS=SKIP=%LN%
) ELSE (
SET LS=
)
FOR %%F IN (%1) DO (
SET F1=%%F
CALL :SUB1
SET VAR1=!VAR1:~%SP%,%4!
ECHO !VAR1!
)
ENDLOCAL
GOTO ENDOFTHISFILE
:SUB1
FOR /F "%LS% TOKENS=*" %%T IN (!F1!) DO (
SET VAR1=%%T
EXIT/B
)
:ENDOFTHISFILE

使い方ですが、上記のバッチファイルのファイル名がextract1.bat、処理するテキストファイルがあるフォルダがd:\txtであるとすると、
extract d:\txt\*.txt 2 3 3
としてください。
引数の3つの数字は、2行目の3文字目から3文字を抽出して表示、という意味です。
動作確認は Windows XP SP3 で行いました。

私もこんなに複雑なバッチファイルを書くのは初めてなのでよくわからず苦労しましたが、パッチファイルって意外といろいろ出来るのですね。
でも、他のプログラミング言語やテキスト処理ツールが使えるならそういうものを使った方がよさそうな気がします。
    • good
    • 0
この回答へのお礼

遅くなりましたがありがとうございます。
参考にさせて頂きます。

お礼日時:2013/05/11 13:57

エクセルファイルのデータならマクロで容易にできる問題です。

ではテキストファイルをどうやってエクセルファイルに変換するかですが、データとデータの間がTABキーで区切られていれば、コピー&ペーストでテキストデータがエクセルデータに変換できます。
    • good
    • 0

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