基本的に:
初めてのポスターはこちら...私は過去2日間、SOだけでなく、インターネット全体で答えを探してきました。アンインストール中に実行されるバッチファイル(.bat)が必要です。config(.cfg)ファイルを開き、エントリを見つけて削除し、アンインストールを終了します。
私がこれまでに持っているもの:
バッチファイルを実行してエントリを構成ファイルに追加するインストーラーがあります。
[Area.01]
Title=Unique to entry
Location=Unique to entry
Active=Required but in all entries
Layer=Required with Unique Number
Required=Required but in all entries
[Area.02]
Title=Unique to entry
Location=Unique to entry
Active=Required but in all entries
Layer=Required with Unique Number
Required=Required but in all entries
Install Batchファイルで構成をスキャンし、次のエントリ番号、エントリの内容、およびエントリのインデックスを保存するREGISTRYキーを追加します。したがって、論理的には次のエントリはになります[Area.03]
。ただし、このファイルには100を超えるエントリが含まれています。
私が欲しいのは、バッチファイルがレジストリエントリを読み取り、それを実行し、エントリを検索し、エントリ全体を削除することです。これが、私がここにいる理由です。これが私がこれまでに持っているものです:
@echo off
REG QUERY "HKLM\SOFTWARE\Name of File" /v SceneryCFGPath
IF ERRORLEVEL 1 GOTO ERROR1
FOR /F "tokens=3 skip=2" %%i IN ('REG QUERY "HKLM\SOFTWARE\Name of File" /v SceneryCFGPath') DO SET VAR1=%%i
CD "%VAR1%"
REG QUERY "HKLM\SOFTWARE\Name of File" /v SceneryIndex
IF ERRORLEVEL 1 GOTO ERROR2
FOR /F "tokens=3 skip=2" %%i IN ('REG QUERY "HKLM\SOFTWARE\Name of File" /v SceneryIndex') DO SET VAR2=%%i
TYPE scenery.cfg | FINDSTR /V Area.%VAR2%
REG DELETE "HKLM\SOFTWARE\Name of File" /F
GOTO END
:ERROR1
ECHO There was an Error while changing to Directory "%VAR1%"...
PAUSE
GOTO ERROR2
:ERROR2
ECHO There was an Error while unregistering from Scenery Library ! Please delete the Area manually...
PAUSE
GOTO END
:END
del "%~f0"
を使用するFINDSTR
と、エントリは正常に検出されますが、最初の行のみ[Area.03]
が削除されます。私がする必要があるのは、それとそのエントリの他の部分を削除することです。
FINDSTRに他のエントリを含めようとしたとき:
TYPE scenery.cfg | FINDSTR /V /N Area.%VAR2% | Title | Active | Layer | Required
エントリごとにこれらの行をすべて削除します。
これはWindowsXP、Vista、7、32、64ビットシステムで実行されるため、私はこれをバッチファイルにすることを強く望んでいます。 これらの特定のWindowsシステムにはすべてCMD.EXEがあるため、追加のライブラリやプログラムは必要ありません。
設定ファイルのエントリ全体を削除することを除いて、すべてが完全に機能しています。誰かを混乱させないことを願っていますが、助けていただければ幸いです。
Sven2157