我只是想开始说我在批处理文件中有点像菜鸟。应用程序Steam是一个数字分发平台。我试图制作一个修改蒸汽游戏的批处理文件。我已经弄清楚如何修改游戏,但应用程序' steam'可以安装在任何驱动器上的任何目录中。我知道在任务管理器中,您可以右键单击某个进程并单击打开文件位置,然后它会将您带到应用程序所在的位置。我想知道是否有人知道如何在批处理文件中执行此操作,然后将其包含在%filelocation%\ content \ content
之类的目录中答案 0 :(得分:1)
假设steam可执行文件名为steam.exe,并假设可执行文件位于系统PATH环境变量的目录中,那么您可以使用where
命令获取文件的位置。
where steam.exe
现在您需要将该命令的输出变为变量。
for /f "tokens=*" %a in ('where steam.exe') do set filelocation=%a
现在,由于BATCH中的许多怪癖之一,上面的for
命令将在命令窗口中按原样运行,但需要稍微修改才能在BATCH文件中工作。
for /f "tokens=*" %%a in ('where steam.exe') do set filelocation=%%a
请注意,字母%
a
个字符
如果steam.exe不在系统的PATH变量上,那么您需要在注册表中查询Steam的安装目录。为此,您需要使用reg
命令并在HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall
下的某处查询
P.S。抱歉,由于我目前没有Windows机器,我现在无法给你更完整的答案
答案 1 :(得分:0)
如果您特别关注Steam,则无法依赖它在用户路径中,并且您可能不想在整个驱动器中搜索它。 (无论如何,您可能会发现错误的可执行文件。)
您最好不要在注册表中查询他们的Steam安装。
@echo off
rem this is quick and dirty
reg query HKCU\Software\Valve\Steam /v SteamExe>nul
if errorlevel 1 echo Steam not found for current user & goto :eof
for /f "delims=" %%a in ('reg query HKCU\Software\Valve\Steam /v SteamExe') do set steampath=%%a
steampath=%steampath:~26%
echo %steampath%
答案 2 :(得分:0)
适用于32和64版本的Windows。
@echo off
(for /f "usebackq tokens=1,2,*" %%a in (`reg query "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Steam" /v UninstallString`) do set SteamPath32=%%c)>nul 2>&1
(for /f "usebackq tokens=1,2,*" %%a in (`reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Steam" /v UninstallString`) do set SteamPath64=%%c)>nul 2>&1
set SteamPath=%SteamPath64%%SteamPath32%
set SteamPath=%SteamPath:\uninstall.exe=%
echo %SteamPath%
pause>nul
答案 3 :(得分:0)
应该可以在用户注册表中的特定位置找到可执行文件和路径:
@Echo Off
Set "SExe="
Set "SPth="
For /F "Tokens=1,2*" %%A In ('Reg Query HKCU\SOFTWARE\Valve\Steam') Do (
If "%%A" Equ "SteamExe" Set "SExe=%%C"
If "%%A" Equ "SteamPath" Set "SPth=%%C")
If Not Defined SExe Exit/B
Rem Your commands go under here for example
Echo=The full path to the Steam executable is "%SExe%"
If Defined SPth Echo=The Steam folder path is "%SPth%"
Timeout -1 1>Nul