当 运行 windows 批处理文件时,无法在循环内替换字符串 var 中的字符

Can't replace character in string var inside a loop when running windows batch file

我正在制作一个批处理文件,我正在尝试打印出文件夹中每个文件的路径,但带有双反斜杠

@echo off 


SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION


for /r %%i in (%USERPROFILE%\*) do (

    set route=%%i
    set route=%%i:\=\%%
    echo %%route%% >> output.txt
)

每个数据的预期值例如:

Output.txt

C:\Users\myuser\...
C:\Users\myuser\...
C:\Users\myuser\...

但是我的代码有问题,我无法实现我的 objective

@echo off 

SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION


for /r "%USERPROFILE%" %%i in (*) do (
    set route=%%i
    set route=!route:\=\!
    echo !route! 
)

请参阅 for /r 语法提示中的 for /?。目录名中的分隔符插入引号。

您不能在字符串操作命令中使用 元变量,例如 %%i

delayedexpansion被调用时,用!var!引用变量的改变值。