複数のＰＮＧファイルに、一気に見えないクレジットを入れるツール（cset.bat）

#前提
OS=Windows10
Software=ImageMagick 7.0.10-19 Q16 x64 2020-06-12 (動作確認時のバージョン)

![cset.bat.title.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/95226/ec15f506-9fb5-5ebc-5961-aac385c2f657.png)
[cset.bat](https://mega.nz/file/wbhiSKCC#P9adrAktGbbU4hLMWeXgFDhsIGTWahmNU7jrDbe33ME)
もしウィルス扱いされるようであれば、最後の方にあるテキストを、テキストファイルに張り付け・セーブして、cset.bat にファイル名を変えれば使えます。

#経緯

自分が作った３Ｄモデル(VRoid Studioで作成）を、他の人が「自分が作った」などと言われたくないので、クレジットをＰＮＧファイルにこっそり入れる方法を探しています。
簡単に出来る方法が無いようなので、とりあえずツールを作成しました。
（え？なんでマイクロソフトからも見捨てられたバッチファイルなの？って？ PowerShell は難しいし、頑張って覚えても普及が微妙で将来が不安だし、他に気軽に使えるものが無いんです）

より良い方法があればコメントなどで教えてください（これが主目的）。

#概要

ＰＮＧファイルにクレジット（コメント）を追記・削除(正確には空のコメント)するバッチファイル（ツール）です。
クレジットをＰＮＧファイルに埋め込むために作成しました。
ぶっちゃけ ImageMagick のサポートツールです。

#インストール 

１．ImageMagick をインストールしてください。
https://imagemagick.org/index.php

#使用法

１．cset.batを編集（右クリック→編集）で 「set comment=」の後ろにクレジット（コメント）を入力して保存してください。
※全角が入力できるかは確認していません

２．ＰＮＧファイルをバックアップしてください
注意：このツールは、ツールを実行したフォルダ「以下」すべてのＰＮＧファイルを編集します。

３．ツール起動

(1)．本ツールをＰＮＧファイルのあるフォルダ（ディレクトリ）にコピー
(2)．本ツールを起動します（ダブルクリックなど）
(3)．メニューに従ってコメントを表示、追記、削除します
(4)．Exit で終了します

#その他

このツールのバージョンは
Version: ImageMagick 7.0.10-19 Q16 x64 2020-06-12
で動作確認しています。

ImageMagick インストール後、インストールしたフォルダで、
コマンドプロンプトで
magick -version
でバージョン確認できます。

#要望、意見、バグ報告など 
気軽にコメント下さい。また下記でもＯＫです。
e-mail yomox9@gmail.com twitter https://twitter.com/4mota

その他どこかの私のウェブサイトに投稿してください。
質問する時は、「debug」を選んでからその画面をテキストにするか、
スクリーンショットを撮ってもらえると、スムーズにやりとり出来ると思います。

#動作の詳細

ImageMagick のコマンドで、PNGファイルに tEXt チャンクを追記しています。
コメント表示のコマンドは自分でも理解出来ていませんｗ
もし、zTxt チャンクを追記する方法、またはクレジットを追記する良い方法が他にあれば教えてください。

#履歴

2020/06/21 ver1.0 公開

#クレジット

(C) Copyright 2020 yomox9 (TM) Some rights Reserved.

#おまけ：私が公開してる3Dモデル（アバター）

VRoid Studioという無料ソフトで作成しました。デフォの人型モデルの、身長とか目の大きさとか簡単に変えてモデルを作成出来ます。
[yomox9 - VRoid HubVRoid Hub https://hub.vroid.com/users/7959534] ( https://hub.vroid.com/users/7959534 )

#cset.bat
```bat:cset.bat
@echo off
setlocal enabledelayedexpansion

set comment=(C) Copyright 2020 yomox9 (TM) Some rights Reserved.

echo ver0.1 2020/06/14 First version
echo ver1.0 2020/06/21 Public version

set nulcnt=0
set cmtcnt=0
set allcnt=0
set equcnt=0

rem test
rem if exist "C:\app\MikuMikuDance_v932x64\UserFile\Model\DoctorY_v04_long_coat\tex - コピー\F00_000_00_EyeExtra_01.png" (
rem 	copy "C:\app\MikuMikuDance_v932x64\UserFile\Model\DoctorY_v04_long_coat\tex - コピー\F00_000_00_EyeExtra_01.png" .
rem )

:menu01
if "%~1" == "" (
rem	set tgt="Below current directory"
	for /f "usebackq delims=" %%a in ( `cd` ) do (
		set tgt="Below current directory. %%a"
	)
) else (
	set tgt="%~1 and other."
)
echo -- Comment Set tool to .png ---
echo Target = %tgt%
echo 0. Exit
echo 1. Show comment
echo 2. Add comment
echo 3. Delete comment

choice /c 0123q
if errorlevel 5 goto :end_
if errorlevel 4 (
	set wflg=3
	goto :next
)
if errorlevel 3 (
	set wflg=2
	goto :next
)
if errorlevel 2 (
	set wflg=1
	goto :next
)
if errorlevel 1 goto :end_

:next

if exist "%~1\" (
	echo Folder
	goto :folder_proc
) else (
	echo File
)

if "%wflg%" == "3" (
	set comment=
)

:loop
echo --- %1 ---
if not "%wflg%" == "1" (
	echo before
)
magick "%~1" -format "^%c" info:
echo(
if not "%wflg%" == "1" (
	magick "%~1" -set comment "%comment%" "%~1"
	echo after
	magick "%~1" -format "%%c" info:
	echo(
)
shift
if not "%~1" == "" goto :loop
goto :end_

:folder_proc
echo All files change below current directory. OK?
choice
if errorlevel 2 goto :loop
if "%wflg%" == "1" (
	for /r %%a in ( *.png ) do (
		echo --- %%~a ---
		magick "%%~a" -format "%%c" info:
		echo(
rem		for /f "usebackq delims=" %%b in ( `magick "%%~a" -format "%%c" info:` ) do (
rem			echo _ %%~b _
rem			if "%%~b" == "" (
rem				set /a equcnt=equcnt+1
rem				pause
rem			) else (
rem				set /a cmtcnt=cmtcnt+1
rem			)
rem			set /a allcnt=allcnt+1
rem		)
	)
rem	echo  equal comment !equcnt! / all comment = !allcnt!
) else if "%wflg%" == "2" (
	for /r %%a in ( *.png ) do (
		echo --- %%~a ---
		magick "%%~a" -set comment "%comment%" "%%~a"
		magick "%%~a" -format "%%c" info:
		echo(
	)
) else if "%wflg%" == "3" (
	set comment=
	for /r %%a in ( *.png ) do (
		echo --- %%~a ---
		magick "%%~a" -set comment "" "%%~a"
		echo(
)
)
goto :menu01

:nullcnt
set /a nulcnt=nulcnt+1
exit /b

:end_
```