循环/ D标志的批处理文件未出现在命令行中

Dar*_*dal 6 windows batch-file

我有一个小的批处理文件,我想使用该文件将文件从一个位置复制到许多可能具有不同名称的位置。

for /D %%f in ("%%localappdata%%\Microsoft\Opc*") do (
    for /D %%x in ("%%f\*") do (copy /y user.config %%x\)
 )
Run Code Online (Sandbox Code Playgroud)

我能够在命令行中正常运行它,但是如果我尝试运行批处理脚本,那么这就是命令行中显示的全部内容:

for / %f in ("%localappdata%\Microsoft\Opc*") do (
   for / %x in ("%f\*") do (copy /y user.config %x\ ) 
)
Run Code Online (Sandbox Code Playgroud)

不论出于何种原因,/ D标志似乎都变成了/

我是批处理脚本的新手,因此不胜感激!

Jos*_*efZ 6

在批处理脚本中:与(正确)将%登录符号%%f%%x参数加倍相反,请勿%在环境变量名称(如%localappdata%etc )中加倍。

for /D %%f in ("%localappdata%\Microsoft\Opc*") do (
    for /D %%x in ("%%f\*") do (copy /y user.config %%x\)
 )
Run Code Online (Sandbox Code Playgroud)

但是,这种令人震惊的 /呼应而不是/D应该不会影响for /D命令功能(仍在寻找解释)。