首页 > 解决方案 > 我正在学习批处理 - 为什么我在设置环境变量时遇到问题,并将其他环境变量作为输入?中弦问题

问题描述

我确信这个问题很愚蠢。但我不确定我做错了什么。我希望变量 start 和 end 用于设置我用来设置 subStr 的中间字符串方法。我已经读过 set /? 没有成功。任何帮助将不胜感激。

echo off
rem // First I will set all my varialbles...
set pleaStr=this is just a test. Please help me figure this out. I appreciate your help
set start=21
set end=-23
set subStr=%pleaStr:~start,end%
rem // The mid string method works normally. See!!
set subStrEasy=%pleaStr:~21,-23%
rem // Return extracted URL:
echo %pleaStr%
echo %subStr%
echo %subStrEasy%

如果我将环境变量 (ENV) 的开始和结束替换为对应的数字 21 和 -23,则上面的代码不起作用。当我echo %subStr%得到给我pleaStr:~start,end 的地方echo %subStrEasy%Please help me figure this out.

也许环境变量不能以这种方式使用?

标签: windowsbatch-filecmd

解决方案


这是使用延迟扩展的解决方案。

@echo off
setlocal enabledelayedexpansion
set "pleaStr=this is just a test. Please help me figure this out. I appreciate your help"
set "start=21"
set "end=-23"
set "subStr=!pleaStr:~%start%,%end%!"
echo %subStr%

推荐阅读