アプリ版:「スタンプのみでお礼する」機能のリリースについて

以下のテキストファイルがあるとき(A.txt)
[A]
1111111

[B]
222222222
222222222
333333333

AA

[C]
222222222
222222222
333333333

[D]
1 2 3 4
5 6 7 8
9 10 11 12


[E]
1 2 3 4 5
5 6 7 8
9 10 11 12

ABCDF

[F]
1 2 3 4 5 6
5 6 7 8
9 10 11 12

ここから
[E]
1 2 3 4 5
5 6 7 8
9 10 11 12

ABCDF
をB.txtとしてを抽出するのに
下記のバッチを作成しましたが10行目を超えるとできなくなってしまいます。
6行目から5列分とかはできましたが

@echo off

:---ウィンドウでユーザー入力値を受け取る
set /P START=開始行を入力:
set /P SENDREN=取得行数を入力(空白を含めない):
set /P FAILNAME=出力ファイル名を入力:


if exist %FAILNAME%.txt del %FAILNAME%.txt
echo [TEST(A1)]>%FAILNAME%.txt

setlocal enabledelayedexpansion
set N=0
(for /f "delims=" %%A in (A.txt) do (
 set /a N+=1
 if !N! GEQ %START% if !N! LEQ %SENDREN% echo %%A
)) >>%FAILNAME%.txt

よろしくお願いします。

A 回答 (1件)

コマンドforでファイルを読み込むと空行をスキップするので、


1>[E]
2>1 2 3 4 5
3>5 6 7 8
4>9 10 11 12
5>ABCDF
――のように4行目と5行目が詰まってしまいます。

これを回避するコードを書くくらいなら、素直にPowerShellで1行書いたほうが手っ取り早いかと。
powershell -c "$input|select -skip 21 -first 6" <a.txt >>b.txt
「バッチファイル 指定行の切り出し」の回答画像1
    • good
    • 0
この回答へのお礼

ありがとうございます。
やはりPowerShellを使ったほうがいいですね。
すっきりしました。

お礼日時:2021/08/27 03:47

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A