我有以下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