String dos中字符串中的第一个和最后一个标记

String dos中字符串中的第一个和最后一个标记,string,parsing,batch-file,arguments,String,Parsing,Batch File,Arguments,我需要字符串中的第一个和最后一个令牌 我试着如下 @echo off for /f "tokens=* delims= " %%f in ('type c.txt') do ( set line=%%f set first=ini set last=ini call :processToken ) goto :eof :processToken echo func-%line% for /f "tokens=1* delims= " %%a in ("%lin

我需要字符串中的第一个和最后一个令牌 我试着如下

@echo off

for /f "tokens=* delims= " %%f in ('type c.txt') do (
  set line=%%f
  set first=ini
  set last=ini
  call :processToken
  )
  goto :eof

:processToken
  echo func-%line%
  for /f "tokens=1* delims= " %%a in ("%line%") do (
rem   echo Got one token: %%a
  set first=%%a
  set last=%%a
  set line=%%b
  )
  if not "%line%" == "" goto :processToken
  goto :eof
但我看到一些奇怪的行为

我的c.txt包含

name -p 11000 -m 11001 -dnN envvarfile variables -L     5388    

上面的脚本可能有什么问题?

但是我看到了一些奇怪的行为-你能告诉我们什么是奇怪的吗?即使在更新变量值之后,在打印它时,我看到了错误的值。要知道这是因为没有添加“SETLOCAL ENABLEDELAYEDEXPANSION”