給与振込や口座振替を行う際、
銀行によっては、専用の用紙(依頼書)へ手書きで転記して
FAX送信を行うところがあります。
転記用として印刷された内容が
依頼書のフォーマットに沿ってない場合もあり、
銀行ごとにカスタマイズをするのも大変なので
直接、データファイルから内容を拾い出して
画面に表示するバッチを作成しました。
実行すると、このようなメッセージボックスが表示されます。
画像を貼り付けたいけど
よく分からない・・・
特筆すべきは、Windowsの標準機能だけで実現した事。
金額の3桁区切りもバッチ内で実装しています。
バッチの計算機能を使っているので2,147,483,647円までしか計算出来ませんが
合計で20億円も振込する会社は少ないハズだし
そんな会社は立派なシステムが用意されていると思うので
ほぼ使えるバッチかなと。
本体はこちらになります。
依頼書内容表示.bat
@ECHO OFF
SetLocal EnableDelayedExpansion
for /f "tokens=* delims=" %%0 in ('findstr /r /c:"^1" "%~1"') do set head=%%0
set 種別=!head:~1,2!
set 業務種別=不明
if "%種別%"=="11" set 業務種別=給与振込(民間)
if "%種別%"=="12" set 業務種別=賞与振込(民間)
if "%種別%"=="21" set 業務種別=総合振込
if "%種別%"=="71" set 業務種別=給与振込(公務員)
if "%種別%"=="72" set 業務種別=賞与振込(公務員)
if "%種別%"=="91" set 業務種別=口座振替
set 文字=!head:~3,1!
if "%文字%"=="0" set 文字=JIS8
if "%文字%"=="1" set 文字=EBCDIC
set 委託=!head:~4,10!
set 会社=!head:~14,40!
set "会社=!会社:(=(!"
set "会社=!会社:)=)!"
set 月日=!head:~54,2! 月 !head:~56,2! 日
set 銀行=!head:~58,4! : !head:~62,15!
set "銀行=!銀行:^(=(!"
set "銀行=!銀行:^)=)!"
if not DEFINED 銀行 set 銀行=空欄
set 支店=!head:~77,3! : !head:~80,15!
set "支店=!支店:^(=(!"
set "支店=!支店:^)=)!"
if not DEFINED 支店 set 支店=空欄
set 口種=!head:~95,1!
set 口番=!head:~96,7!
for /f "tokens=* delims=" %%0 in ('findstr /r /c:"^8" "%~1"') do set 件数金額=%%0
for /f "tokens=* delims=0" %%0 in ("%件数金額:~1,6%") do call :3ketaCsv "%%0" & set "件数=!csv!"
for /f "tokens=* delims=0" %%0 in ("%件数金額:~7,12%") do call :3ketaCsv "%%0" & set "金額=!csv!"
(
ECHO;依頼会社 = %会社%
echo;
ECHO;ファイル名 = %~nx1
echo;
ECHO;業務種別 = %業務種別%
echo;
ECHO;文字種類 = %文字%
echo;
ECHO;委託者C = %委託%
echo;
ECHO;振替銀行 = %銀行%
echo;
ECHO;取引店舗 = %支店%
echo;
ECHO;口座番号 = %口種%-%口番%
echo;
ECHO;振替月日 = %月日%
echo;
ECHO;合計件数 = %件数% 件
echo;
ECHO;合計金額 = %金額% 円
) | msg console /w /time:0
goto :eof
rem /; --- 件数・金額を3桁区切りに※但し、2,147,483,647円まで ---
:3ketaCsv
set Num=%~1
set csv=
:3ketaCsv_Loop
set /a n999=!Num! %% 1000
set z999=000!n999!
set z999=!z999:~-3!
set /a wSEN=!Num! / 1000
if !wSEN! gtr 0 (
set Num=!wSEN!
set "csv=!z999!,!csv!"
goto :3ketaCsv_Loop
)
set "csv=!n999!,!csv!,"
set "csv=!csv:,,=!"
バッチファイルにしてドラッグで表示させてもよし。
call 依頼書内容表示.bat "振込データファイル" で組み込んでもよし。