use*_*620 7 windows substring batch-file
我试图在批处理文件中进行一些字符串比较和提取.该操作在SVN存储库的一组文件夹名称上进行.
for /f %%f in ('svn list https://dev_server/svn/product/branches') do (
set folder=%%f
echo Folder: %folder%
:: get substring from %folder% starting at 0 with a length of %length%
:: if this substring is equal to %folderStart% then get substring from %folder% starting at position %length%
)
Run Code Online (Sandbox Code Playgroud)
这里有几个问题:
有没有人知道如何在上面的代码中的注释部分实现这些功能?
动态子串很容易延迟扩展.
setlocal enableDelayedExpansion
set "string=1234567890"
::using a normal variable
set len=5
echo !string:~0,%len%!
::using a FOR variable
for /l %%n in (1 1 10) do echo !string:~0,%%n!
Run Code Online (Sandbox Code Playgroud)
它也可以用于搜索和替换
你的线路
echo %folder%
Run Code Online (Sandbox Code Playgroud)
需要是
echo !folder!
Run Code Online (Sandbox Code Playgroud)
希望以下内容展示了如何执行子字符串
@echo off
setlocal ENABLEDELAYEDEXPANSION
set theString=abcd
for %%f in (1 2 3 4) do (
set pos=%%f
call :Resolve theString:~0,!pos!
echo !retval!
)
goto :eof
:Resolve
for %%a in ("^!%*^!") do set retval=%%~a
goto :eof
Run Code Online (Sandbox Code Playgroud)
这使
a
ab
abc
abcd
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14568 次 |
| 最近记录: |