當我將驅動器號從%0
存儲到變量中時,我正面臨一些意外的輸出。Windows批量變量擴展不能正常工作
下面的代碼片段從運行C:\ TEMP \測試:
@echo off
for %%I in ("%~0") do set "Target=%%~dI"
echo Target: %Target%
pushd %Target% && echo Current: %CD% || echo Failed to change dir!
這將打印爲Target
正確的值而不是當前目錄:
Target: C:
Current: C:\Temp\Test
預期的輸出:
Target: C:
Current: C:\
I al所以嘗試使用延遲擴展的相同代碼,但這也不起作用。有人可以解釋這裏發生了什麼嗎?
+1,剛剛認識到自己是一樣的:-),但輸出仍然有問題 – jeb 2013-02-14 10:16:18
'pushd%dp0'中尾隨的反斜槓是關鍵,謝謝! :) – mrt 2013-02-14 10:35:32
你的意思是'pushd%〜d0'' – 2013-02-14 12:18:25