gpt4 book ai didi

windows - 在批处理文件中使用 '#'(井号)

转载 作者:可可西里 更新时间:2023-11-01 14:44:52 30 4
gpt4 key购买 nike

我遇到了一个使用 # 的批处理文件(portableshell.bat 来自 Strawberry Perl 的便携版本),我不明白为什么。我在网上搜索过,但似乎没有提到这种用法。我需要模仿批处理文件的功能,但在不了解其具体功能的情况下,我会谨慎行事。

这里#的作用是什么:

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,供引用)

最佳答案

# 字符在那里,以便在比较中正确处理 null/undefined 值,即避免与未定义的值进行比较,如果变量对它们求值。

几乎任何角色都可以达到这个目的(只要它在这个上下文中没有其他含义)。常见的选择是 []{}"" 也可以使用。

According to dbenham in the comments, using anything other than "" is generally bad practice. Quotes can fail when the variable has its own quotes, but is safe when the expanded variable cannot have them, as when expanding paths. The only way that's safe in all cases is delayed expansion.

Also, there is no reason to surround a variable expansion with # or [ or whatever is used. In the case of the batch file of the question, it is apparently just for symmetry.

有关此的更多信息,请阅读 in this question .

感谢CodeCaster寻求帮助

关于windows - 在批处理文件中使用 '#'(井号),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35867036/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com