我有一个批处理脚本:
echo on
Set appdir=This is testing for substring : Management\s18vx
ECHO %appdir%
REM get substring i.e, s18vx
Set SubStr = %appdir:~43%
ECHO %SubStr%
cmd /k
获取子字符串后,将其设置为新变量。在Echo上,此变量不打印任何内容。不知道这里出了什么问题。基本上,我想用提取的字符串(在这种情况下为s18vx)填充新变量。
答案 0 :(得分:1)
一次尝试:
@echo off
set "appdir=This is testing for substring : Management\s18vx"
echo %appdir%
REM get substring i.e, s18vx
Set "SubStr=%appdir:~43%"
echo %SubStr%
pause
=
中的空格很重要,您并不真的希望在那里。还要将您的变量用双引号引起来,以消除额外的空格,尤其是在变量字符串之后。
有关set
命令的更多帮助,请打开cmd.exe
并键入set /?
一些注意事项: 默认情况下,Echo处于打开状态,除非它构成脚本的一部分,在该脚本中较早关闭了Echo,并且您由于某种原因想要将其打开,则无需将其打开。
此外,我建议您是否只想让最终结果变成@echo off
,因为echo on
几乎就像一个调试函数,它echo
是您运行的每个命令,其中{ {1}}将禁用此功能,仅显示最终结果。