我遇到了使用#
的批处理文件(来自便携式版本Strawberry Perl的portableshell.bat
),我无法理解为什么。我在网上搜索,但似乎没有提及这种用法。我需要模仿批处理文件的功能,但我很警惕不这样做,而不理解它到底做了什么。在批处理文件中使用'#'(井号)
什么的#
这里的目的:
set drive=%~dp0
set drivep=%drive%
if #%drive:~-1%# == #\# set drivep=%drive:~0,-1%
这里:
if not #%1# == ## "%drivep%\perl\bin\perl.exe" %* & goto END
(这里是整个文件的pastebin,仅供参考)
为了在比较中空格处理和妥善处理空值。 – CodeCaster
@CodeCaster所以它不会做任何事情而不是模仿一个角色?我是否正确地理解了它,如果我说'#'没有功能,除非是非空白的非功能性字符? – mechalynx
是的。你不能比较一个值,比如'null',因为这在批处理文件中不起作用。另见http://stackoverflow.com/questions/5683583/windows-batch-files-if-else。你几乎可以使用任何你喜欢的字符,所以'如果不是[%1] == []'也可以。 – CodeCaster