我有以下批处理文件:
@echo off
setlocal enabledelayedexpansion
set "ChosenFolder="
for /r /d %%f in (.) do call :function "%%f"
goto end
:function
echo %%~1: %~1
set "ChosenFolder=!%~1:*\web\=!"
echo ChosenFolder: %ChosenFolder%
:end
批处理文件位于
c:\docs\webs\my website name\web\
。它应该遍历每个子文件夹并生成每个文件夹的相对路径,通过 \web\
剥离所有内容的每个路径。总共有两个子文件夹,apples
和 apples\oranges
,所以输出应该是这样的:
%~1: c:\docs\webs\my website name\web\.
ChosenFolder: \.
%~1: c:\docs\webs\my website name\web\apples\.
ChosenFolder: apples\.
%~1: c:\docs\webs\my website name\web\apples\oranges\.
ChosenFolder: apples\oranges\.
但是,这就是我得到的:
%~1: c:\docs\webs\my website name\web\.
ChosenFolder: c:\docs\webs\my website name\web\.:*\web\=!
%~1: c:\docs\webs\my website name\web\apples\.
ChosenFolder: c:\docs\webs\my website name\web\apples\.:*\web\=!
%~1: c:\docs\webs\my website name\web\apples\oranges\.:*\web\=!
ChosenFolder: c:\docs\webs\my website name\web\apples\oranges\.:*\web\=!
我做错了什么?