【发布时间】:2017-08-30 11:49:26
【问题描述】:
我创建了一个批处理文件,该文件转到一系列应用程序目录并在其中注册所有 dll 和 ocx 文件。如果我打开提升的命令提示符并更改到特定目录并手动键入 regsvr 命令,它可以正常工作。批处理文件看起来像是在尝试注册每个文件,但它们没有被注册。我尝试右键单击它并告诉它以管理员身份运行(命令窗口在标题栏中未显示“管理员”),但它没有注册。如果我打开提升的命令窗口并尝试从那里运行批处理文件,它也不起作用。
我也尝试将脚本文件放在 c:\Windows\System32 和 C:\Windows\SysWOW64 中,但没有任何效果。
我还读到该文件需要是 ANSI 而不是 Unicode,但这也无济于事。
是否有某种命令可以与 regsvr 放在一起,强制提升每个命令?我不想让用户手动输入所有命令。
这是我的批处理文件:
chdir c:\program files (x86)\pfps
for /r %%i in (*.dll) do regsvr32 /s %%i
chdir DataManager
for /r %%i in (*.dll) do regsvr32 /s %%i
chdir ..\falcon
for /r %%i in (*.dll) do regsvr32 /s %%i
for /r %%i in (*.ocx) do regsvr32 /s %%i
chdir FVOverlays
for /r %%i in (*.dll) do regsvr32 /s %%i
chdir ..\..\FVImageryService
for /r %%i in (*.dll) do regsvr32 /s %%i
chdir ..\GarminGPSFeed
for /r %%i in (*.dll) do regsvr32 /s %%i
chdir ..\MapDataServer
for /r %%i in (*.dll) do regsvr32 /s %%i
chdir ..\SkyViewNG
for /r %%i in (*.dll) do regsvr32 /s %%i
for /r %%i in (*.ocx) do regsvr32 /s %%i
chdir ..\System
for /r %%i in (*.dll) do regsvr32 /s %%i
for /r %%i in (*.ocx) do regsvr32 /s %%i
【问题讨论】:
-
尝试引用:
for /r %%i in (*.dll) do regsvr32 /s "%%i". -
这就是诀窍!引号的作用是什么?
-
用双引号括起来的路径被威胁为单路径,即使它包含空格。
标签: windows batch-file regsvr32