这是我的批生产线:
For /F "tokens=1,2 delims=: " %%i in (list.txt) do echo %%i%%j
其中包含list.text:
C:\Document and Setting\My Folder
上一行显示:C\Document
但是我真正想要的是:C\Document and Setting\My Folder
问题在于,"delims=:"
将不会捕获'Space'之后,我可以使用"delims="
来捕获空间,但是我不想在字符串中使用':'
。
有什么主意吗?
答案 0 :(得分:2)
由于您使用的令牌,您正在告诉for
命令除以:
和空格。将字符串分成2个,以:
分隔,并使用tokens=1*
将:
之前的所有内容分配给%%i
元变量,并将其余的所有内容分配给%%j
,包括空格。 / p>
@For /F "tokens=1* delims=:" %%i in (list.txt) do echo %%i%%j
答案 1 :(得分:0)
您可以尝试:
@echo off
setlocal enableDelayedExpansion
For /F "tokens=* delims=" %%i in (list.txt) do (
set "drive=%%~di"
echo !drive:~0,1!%%~pi%%~ni
)
在这里您可以看到参数/令牌如何扩展-> https://ss64.com/nt/syntax-args.html