假设我有一个字符串“AAA BBB CCC DDD EEE FFF”。
如何在批处理文件中拆分字符串并检索第 n 个子字符串?
C# 中的等价物是
"AAA BBB CCC DDD EEE FFF".Split()[n]
最佳答案
遍历字符串单词的三种可能的解决方案:
版本 1:
@echo off & setlocal
set s=AAA BBB CCC DDD EEE FFF
for %%a in (%s%) do echo %%a
版本 2:
@echo off & setlocal
set s=AAA BBB CCC DDD EEE FFF
set t=%s%
:loop
for /f "tokens=1*" %%a in ("%t%") do (
echo %%a
set t=%%b
)
if defined t goto :loop
版本 3:
@echo off & setlocal
set s=AAA BBB CCC DDD EEE FFF
call :sub1 %s%
exit /b
:sub1
if "%1"=="" exit /b
echo %1
shift
goto :sub1
当字符串包含“*”或“?”等通配符时,版本 1 不起作用。
版本 1 和版本 3 处理像“=”、“;”这样的字符或 ',' 作为单词分隔符。这些字符与空格字符具有相同的效果。
关于windows - 如何在 Windows 批处理文件中按空格拆分字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1707058/