- ベストアンサー
データ抽出のバッチファイル作成方法
- 1つのフォルダ内に複数のテキストファイルがあり、指定した行とその行の3番目〜5番目の文字を抽出する方法について教えていただきたいです。
- フォルダ内の情報は、フォルダ名「folder」内にあります。ファイル名は「testX.txt」や「textY.txt」で、ファイルの中身は1行目から4行目までのテキストです。
- 具体的には、2行目の「ccc」と「qqq」の抽出方法を知りたいです。質問にお答えいただけると嬉しいです。
- みんなの回答 (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 で行いました。 私もこんなに複雑なバッチファイルを書くのは初めてなのでよくわからず苦労しましたが、パッチファイルって意外といろいろ出来るのですね。 でも、他のプログラミング言語やテキスト処理ツールが使えるならそういうものを使った方がよさそうな気がします。
その他の回答 (1)
エクセルファイルのデータならマクロで容易にできる問題です。ではテキストファイルをどうやってエクセルファイルに変換するかですが、データとデータの間がTABキーで区切られていれば、コピー&ペーストでテキストデータがエクセルデータに変換できます。
お礼
遅くなりましたがありがとうございます。 参考にさせて頂きます。