
【已解決】不及時關閉延遲變量可能會導致cd/d操作失效 近期回帖中遭遇一則怪相,在win8.1,win10系統可復現,用以下5段示例代碼說明,唯獨其中第5段代碼中最后的 cd /d c:temp 失效,即腳本退出后當前目錄仍是 c:tempxxx 以下測試代碼存為 test.bat 可在命令行直接用 test.bat n 來測試各段代碼運行之后當前目錄的結果,其命令行參數 n=1-5
nclick="copycode($('code0'));">復制代碼
- @echo off &if %~1== (goto :5) else goto :%~1
- :1
- setlocal enabledelayedexpansion
- cd c:tempxxx
- echo,!cd!
- cd c:temp
- echo,改變當前目錄有效》!cd!
- endlocal
- exit/b
- :2
- setlocal enabledelayedexpansion
- cd c:tempxxx
- echo,!cd!
- cd c:temp
- echo,改變當前目錄有效》!cd!
- endlocal
- exit/b
- :3
- setlocal enabledelayedexpansion
- cd c:tempxxx
- echo,!cd!
- endlocal
- cd c:temp
- echo,改變當前目錄有效》%cd%
- exit/b
- :4
- cd c:tempxxx
- setlocal enabledelayedexpansion
- echo,!cd!
- endlocal
- cd c:temp
- echo,改變當前目錄有效》%cd%
- exit/b
- :5
- cd /d c:tempxxx
- setlocal enabledelayedexpansion
- echo,!cd!
- cd /d c:temp
- echo,!cd!》當前顯示有效》腳本退出后無效
- endlocal
- exit/b

