我有以下for
命令如何报价空间在“FOR/F”循环的命令在Windows
for /F %s in ('"mas ter\gradlew.bat" -q -p mass ter') do echo %s
我不让它正常工作。这不是实际的用例,而是一个非常简单的例子。
执行
"mas ter\gradlew.bat" -q -p "mas ter"
工作正常,
"mas ter\gradlew.bat" -q -p mass ter
说,该项目direcotry “质量” 不存在(额外的 “s” 是唯一distinguisihing目的),
mas ter\gradlew.bat -q -p mass ter
说没有找到命令“mas”。
到目前为止这么期待,但现在我想让它在for循环中工作。
for /F %s in ('mas ter\gradlew.bat -q -p mass ter') do echo %s
当然
再次说命令“MAS”没有被发现,
for /F %s in ('"mas ter\gradlew.bat" -q -p mass ter') do echo %s
当然
再次表示,项目direcotry“质量”不存在,但现在它来了,
for /F %s in ('"mas ter\gradlew.bat" -q -p "mass ter"') do echo %s
再次表示未找到命令“mas”。 o_O
现在我在跆拳道。
为什么会发生这种情况,我该如何使它工作?
它也不能用于逃避^
字符的空格。
除此之外,这不会帮助,因为这两条路径都存储在参数和使用像
for /F %s in ('"%script_path%\gradlew.bat" -q -p "%script_path%"') do echo %s
感谢您的反馈@Vampire,那么很可能,为什么不使用'设置SCRIPT_DIR =%〜sdp0'得到8.3名,然后无需呼也? –
一个现在被删除的问题还提出了8.3个名字,不幸的是他们可以被停用,即使他们被激活,只有新创建的路径才能得到一个。对我来说e。 G。 C有他们激活,D停用,我没有故意这样做。所以使用8.3名称并不是非常安全的。否则,这将是一个有效的解决方案,因为那样你永远不需要在命令周围引用引号。 – Vampire