我正在编写我的第一个批处理文件,因为我以前从未使用过 Windows 命令行,所以我遇到了一些问题。
这是我的场景。我在几个图像上使用这个批处理文件来安装一些东西。我希望批处理文件检查安装程序应该在的文件夹,如果不存在,我希望批处理文件在计算机中搜索安装程序。之后,我希望它运行所述安装程序。
这是我所拥有的:
ECHO.
ECHO Starting Foo installation
IF EXIST Install\Installer.cmd (CALL Install\Installer.cmd & GOTO NextPart) ELSE (GOTO SearchInstaller)
:SearchInstaller
SET the_path =
E: & CD\
DIR /S/B Installer.cmd > installer_location.txt
IF EXIST installer_location.txt (SET /P the_path =< installer_location.txt & GOTO FoundIt)
C: & CD\
DIR /S/B Installer.cmd > installer_location.txt
IF EXIST installer_location.txt (SET /P the_path =< installer_location.txt & GOTO FoundIt)
D: & CD\
DIR /S/B Installer.cmd > installer_location.txt
IF EXIST installer_location.txt (SET /P the_path =< installer_location.txt & GOTO FoundIt)
ECHO Installation file not found.
:FoundIt
ECHO Batch file found at%the_path%
CALL %the_path%
ECHO Finished installation & ECHO.
GOTO NextPart
:NextPart
(more stuff)
我认为问题在于,一旦我使用 DIR 定位它,它就没有保存路径。我已经研究了好几天,我的谷歌搜索都充满了紫色链接。我发现的一切都表明我的语法是正确的,但我知道我做错了什么。
我已经尝试ECHO Program execution reached this point.
在几个位置放置一个,所以我至少知道它会到达哪里。我看到的问题在于将文本文件的内容分配给the_path
我尝试ECHO
路径的行,因此我可以看到它有效。