批处理在“ delims”之后包含“ space”

时间:2019-12-06 10:47:05

标签: batch-file

这是我的批生产线:

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="来捕获空间,但是我不想在字符串中使用':'

有什么主意吗?

2 个答案:

答案 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