答案1
您正在定义DOSKEY %%GG=cd %%GG:\
(使用双 G),它扩展为DOSKEY aG=cd aG:\
, DOSKEY bG=cd bG:\
... 因此您必须键入aG
才能更改为驱动器aG:
(这不是有效的驱动器号)。其他驱动器也一样
如果你跑for /?
你会发现 for 循环中的变量只有一个字母,就像命令行参数由单个数字组成一样
FOR %variable IN (set) DO command [command-parameters]
%variable Specifies a single letter replaceable parameter.
此外,要更改当前驱动器,您只需使用驱动器号而不是cd
。这意味着要更改为 A: 上的当前目录,只需运行A:
.CD A:
不起作用(如预期的那样)。但是,如果您想强制更改当前驱动器和当前目录然后使用/D
选项
这是修复版本
@ECHO OFF
FOR %%G IN (a,b,c,d,e,f,g,h) DO (
DOSKEY %%G=%%G:
rem Or DOSKEY %%G=cd /D %%G:
)