Windows 使用bat文件将path变量写入ini

Windows 使用bat文件将path变量写入ini,windows,batch-file,cmd,imagemagick,ini,Windows,Batch File,Cmd,Imagemagick,Ini,我试图编写一个bat文件来查找路径变量,或者至少查找所有路径变量。 我希望能够找到ImageMagick的存储位置,以便可以在xEdit for skyrim中使用pascal脚本运行它,目前我有: @ECHO off IF "%PATH%" == "Magick.exe" GOTO NOPATH :YESPATH PATH=%PATH% @ECHO %PATH% GOTO END :NOPATH @ECHO false PATH=C:\DOS; GOTO END :END echo. >

我试图编写一个bat文件来查找路径变量,或者至少查找所有路径变量。 我希望能够找到ImageMagick的存储位置,以便可以在xEdit for skyrim中使用pascal脚本运行它,目前我有:

@ECHO off

IF "%PATH%" == "Magick.exe" GOTO NOPATH
:YESPATH
PATH=%PATH%
@ECHO %PATH%
GOTO END
:NOPATH
@ECHO false
PATH=C:\DOS;
GOTO END
:END
echo. > ygg.new
for /F "delims=\= tokens=1,2" %%k in (Ygg.ini) do (
    if "%%k" NEQ "MagickPath" GOTO P1
)

:P2
    >>ygg.new echo %%k=%PATH%
    GOTO SECONDEND
:P1
    >>ygg.new echo %%k=%%L
    GOTO SECONDEND
:SECONDEND
del Ygg.ini
ren ygg.new Ygg.ini
此bat仅在ygg.ini存在时导出,并将输出
%k=
,而不是我想要的,即
MagickPath=
。我希望能够自动创建文件,如果它不存在,以及它应该在其中的部分(BaseData)


我在这里设置了一个存储库:它显示将执行bat文件的pascal脚本的完整代码。

您可以尝试使用
reg query
查询注册表。许多程序将其安装路径存储在
HKLM\Software\{program\u name}
中的注册表项中,并且此注册表项名称通常在不同版本和机器上保持一致。或者,程序可以将其作为卸载字符串的一部分存储在
HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\{program\u name}
中。密钥也可以是GUID而不是程序名。此外,您不能将名称
PATH
用作脚本中的变量,因为它是系统保留的名称(在命令提示下键入
set
,然后按enter键查看所有不能使用的保留/系统变量名称)。相反,您可以使用诸如
set progPath=
之类的内容,但不要使用变量名
PATH
,因为系统使用该变量来提供查找可执行文件的路径列表!但是,如果您实际上正试图在系统保留变量
PATH
的分号分隔列表中查找特定路径,请查看。。。