#内容
COM.DLLをREGASM登録するBATを書いています。
BATでCOM → POWERSHELL へ誘導する処理をしようとしています。
理由としては
0. .NETのREGASMのPATHを取得する
$result = [Runtime.InteropServices.RuntimeEnvironment]::GetRuntimeDirectory()
0. 管理者権限でPOWERSHELLを実行したい
$run = Join-Path $result "Regasm.exe" $target = "./dll/ExcelVbaExt.dll -Verb runAs" $run $target
→ CMDとおなじように記載
現在のコード
INST.BAT
1@echo off 2cd /d %~dp0 3openfiles > NUL 2>&1 4if not %ERRORLEVEL% EQU 0 goto sub 5 6@set FwDir="%windir%\Microsoft.NET\framework" 7echo "%FwDir%" 8for %%a in (%FwDir%) do ( 9for /f "delims=" %%i in ('dir /b /s "%FwDir%\Regasm.exe"') do ( 10call :RegisteredDll %%i)) 11pause 12 13:RegisteredDll 14echo ---- regasm process ---- 15%1 "./dll/ExcelVbaExt.dll" 16goto end 17:sub 18powershell start-process %~nx0 -verb runas 19:end
#問題点
なんとか最終的に動かせるところまで、たどり着きました。
しかしながら、ループ脱出でてこずっています。
おそらく完了処理がおかしいのか、最後にエラーがでます。
どうしたらいいでしょうか?
`""C:\WINDOWS\Microsoft.NET\framework""
---- regasm process ----
Microsoft(R) .NET Framework Assembly Registration Utility 2.0.50727.8922
Copyright (C) Microsoft Corporation 1998-2004. All rights reserved.
RegAsm : error RA0000 : 'C:\Users\mm05162\Desktop\IMPRGSC\VBA\dll\ExcelVbaExt.dll' は有効な .NET アセンブリではないため 、読み込めませんでした。
---- regasm process ----
Microsoft .NET Framework Assembly Registration Utility 4.8.3761.0
for Microsoft .NET Framework Version 4.8.3761.0
Copyright (C) Microsoft Corporation. All rights reserved.
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。