当我将驱动器号存储%0
到变量中时,我面临一些意外的输出。
以下代码段从C:\Temp\Test运行:
@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:\
我也尝试了延迟扩展的相同代码,但这也不起作用。谁能解释这里发生了什么?