第 1 个问题:
如果直接写成示例 1,通过SET FULL_PATH
可以查看到FULL_PATH
已经被正常赋值,但是写成示例 2,通过ECHO
输出却无法输出这个FULL_PATH
的值,怎么破?
:: 示例 1
@SET FULL_PATH = %~dp0HelloWorld.exe
@SET FULL_PATH
:: 示例 2
@SET FULL_PATH = %~dp0HelloWorld.exe
@SET FULL_PATH
@ECHO %FULL_PATH%
第 2 个问题:
如果写成示例 3,通过SET FULL_PATH
可以查看到FULL_PATH
只有目录名,没有文件名,怎么破?
:: 示例 3
@SET EXE_NAME = HelloWorld.exe
@SET FULL_PATH = %~dp0%EXE_NAME%
@SET FULL_PATH
@ECHO %FULL_PATH%
虽然示例 1可以工作,不过为了清晰易懂,我更希望把它拆分成示例 4这样的格式,不知道该怎么破?
:: 示例 4
@SET INSTALL_DIR = %~dp0
@SET EXE_NAME = HelloWorld.exe
@SET FULL_PATH = %INSTALL_DIR%\\%EXE_NAME%
第 1 个问题的原因是空格导致的,可以用下面的示例进行验证。
:: 示例 5
@SET FULL_PATH=%~dp0HelloWorld.exe
@SET FULL_PATH
@ECHO %FULL_PATH%
示例 5中不使用任何空格,则SET FULL_PATH
和ECHO
均能正常显示。
:: 示例 6
@SET FULL_PATH =%~dp0HelloWorld.exe
@SET FULL_PATH
@ECHO %FULL_PATH%
示例 6中变量赋值时等号左侧使用空格,则SET FULL_PATH
正常,而ECHO
不正常。
:: 示例 7
@SET FULL_PATH= %~dp0HelloWorld.exe
@SET FULL_PATH
@ECHO %FULL_PATH%
示例 7中变量赋值时等号右侧使用空格,则SET FULL_PATH
和ECHO
都正常显示,只是多了个空格。
如果变量赋值时等号两侧都使用空格,和示例 2相同,则SET FULL_PATH
正常,而ECHO
不正常。
问题 2 还没找到解决方法。