用不完整的名字在.bat中执行exe。

问题描述 投票:0回答:1

我想做一个安装服务的.bat,我用的是这个。

C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe "ServiceName.exe"

但 "v4.0.30319 "可以是 "v4.0.otherVersion",我寻找一种方式来执行反正.我搜索了很多,但没有找到一些谁的工作,我真的很糟糕与bash。

谢谢。

windows batch-file cmd command-prompt prompt
1个回答
0
投票

根据你提供的信息,这个想法可以从注册表中检索到你需要的位置。

@Echo Off
SetLocal EnableExtensions DisableDelayedExpansion
Set "Net4RegPath=HKLM\SOFTWARE\Microsoft\Net Framework Setup\NDP\v4"
Set "InstallUtil="
For /F "EOL=HTokens=2*" %%G In (
    '%__AppDir__%reg.exe Query "%Net4RegPath%" /S /F "InstallPath" /V /E
     2^>NUL^|%__AppDir__%find.exe "_SZ"')Do For /F "Delims=" %%I In (
    '%__AppDir__%where.exe "%%~H\.":"InstallUtil.exe" 2^>NUL'
)Do Set "InstallUtil=%%I"
If Defined InstallUtil "%InstallUtil%" "ServiceName.exe"

请注意,如果你想具体确定x86文件的位置,这个方法目前不会检索到合适的文件路径。InstallUtil.exe 文件在x64操作系统上的应用。但由于这在技术上不在你回答问题的范围内,如果需要的话,我会让你去实现。

© www.soinside.com 2019 - 2024. All rights reserved.