windows - 如何在 Windows 批处理文件中按空格拆分字符串?

标签 windows batch-file split

假设我有一个字符串“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/

相关文章:

Windows批量复制文件从子文件夹到一个文件夹

bash - 如何在 Bash 中拆分带引号的字符串?

Python - 拆分函数 - 列表索引超出范围

windows - Chocolatey 升级命令不起作用

windows - 如何自动更新使用 Inno Setup 安装的应用程序

c++ - 构建 32 位 OpenSSL FIPS (nmake f ms\ntdll.mak) : Illegal Character in macro

windows - 为什么我不能关闭从 Maven 插件嵌入的 tomcat 7?

batch-file - 如何为 FFMpeg 创建批处理文件以下载流视频

batch-file - 如何在 wsl 中从 Windows 批处理文件执行 .sh 文件

mysql - SQL Server 单独的 : FirstName, MiddleName 和 LastName