0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

欠けてる番号を探したい

Last updated at Posted at 2024-11-25

番号欠番チェックバッチスクリプト

ファイル名の末尾に含まれる番号を取得し、連番として欠番になっている番号をチェックするバッチスクリプトを作成しました。
ファイルが多数ある場合に、どの番号が欠けているか一目で分からなくなることを防ぐため


スクリプトの概要

このスクリプトは、現在のディレクトリ内にある .txt ファイルのファイル名から、末尾に付与された番号(アンダースコアの後ろの部分)を抽出します。
抽出した番号をもとに、指定した連番(ここでは 1~99)の中で存在しない番号(欠番)を検出し、結果を表示します。


バッチスクリプト

@echo off
setlocal enabledelayedexpansion

REM 連番の数字を保持する変数(空白区切り)
set "numbers="

REM 現在のディレクトリ内の *.txt ファイルを処理
for %%F in (*.txt) do (
    REM ファイル名(拡張子を除く)を取得
    set "filename=%%~nF"
    REM ファイル名にアンダースコアがある場合、後ろの部分を抽出
    for /f "tokens=2 delims=_" %%N in ("!filename!") do (
        set "num=%%N"
        REM 抽出した部分が数字のみか確認
        for /f "delims=0123456789" %%X in ("!num!") do (
            if "%%X"=="" (
                set "numbers=!numbers! !num!"
            )
        )
    )
)

REM 存在する番号を配列として記録
for %%N in (!numbers!) do (
    set /a num[%%N]=1
)

REM 1から99までの連番をチェックし、欠番を抽出
set "missing="
for /l %%I in (1,1,99) do (
    if not defined num[%%I] (
        set "missing=!missing! %%I"
    )
)

REM 結果を表示
if defined missing (
    echo 足りない番号:%missing%
) else (
    echo 連番はすべて揃っています。
)
pause
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?