set A=2 && echo %A%
這不會在窗口中將A回顯爲2。有什麼辦法可以做到嗎?是否可以設置環境變量並在單行批處理腳本中回顯它?
A=2 ; echo $A
在bash中工作。我想在Windows類似的行爲
set A=2 && echo %A%
這不會在窗口中將A回顯爲2。有什麼辦法可以做到嗎?是否可以設置環境變量並在單行批處理腳本中回顯它?
A=2 ; echo $A
在bash中工作。我想在Windows類似的行爲
我敢肯定有很多方法可以做到這一點,這裏有兩個:
setlocal ENABLEDELAYEDEXPANSION&set "foo=bar baz"&echo.!foo!&endlocal
set "foo=bar baz"&for /F "tokens=1,* delims==" %%A in ('set foo') do if "%%~A"=="foo" echo.%%B
編輯:新增檢查爲第二個解決方案「過濾」設置結果,感謝JohannesRössel
添加到@Anders answers,我調整了自己的解決方案的東西,給你更多的靈活性:
set foo=bar&for /f %a in ('echo ^%foo^%') do @echo %a
輸出:
bar
這使您可以做字符串替換過:
set foo=bar&for /f %a in ('echo ^%foo^:a^=o^%') do @echo %a
輸出:
bor
編輯:添加一些插入修復@ jeb的評論。
這不可靠。如果再次運行它,但將'bar'更改爲'ccc',它仍會回顯'bar' – jeb 2017-02-10 14:32:44
你爲什麼要這樣做?對我來說,這看起來像是一個小小的風格問題。 – 2010-04-28 18:43:26
可能有必要在別名?或者在生成其他腳本的腳本中編寫更簡單的代碼。 – 2010-04-28 18:55:24