批处理文件 - 在函数内搜索和替换函数参数时遇到问题

问题描述 投票:0回答:0

我有以下批处理文件:

@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\=!

我做错了什么?

string for-loop batch-file replace
© www.soinside.com 2019 - 2024. All rights reserved.