gpt4 book ai didi

batch-file - 如何在 BAT For 中获取 token 2 以后

转载 作者:行者123 更新时间:2023-12-05 01:29:18 27 4
gpt4 key购买 nike

命令 svn status 返回如下内容:

?       SomeClient\BUTCHERED.docx
M SomeClient\Development notes.txt
? SomeClient\Received\~$formation for prospective clients.docx
M SomeClient\Sales\Estimates.xlsx
M SomeClient\Sales\Specification.docx
? SomeClient\Sales\~$Estimates.xlsx
? SomeClient\Sales\~$ecification.docx
? SomeClient\removed.docx
? SomeClient\site spec1.docx
? SomeClient\~$TCHERED.docx
? SomeClient\~$emoved.docx
? SomeClient\~$te spec1.docx

根据 this , 前 5 列为 1 个字符宽。

如何只将文件名输出到文本文件?这是我的:

for /F "tokens=2*" %%U in ('svn status C:\SVN-EDGE') do echo %%U

但是一旦遇到文件名中的空格,它就会停止回显。如果我将它更改为 do echo %%U %%V,我会得到正确的输出。

这是正确的做法吗?一段时间以来,我一直在摆弄 token 和 delims。

谢谢!

最佳答案

* 分配一个新变量。

将 token 1 映射到 %%A 然后忽略它并使用 %%B

for /F "tokens=1*" %%A in ('svn status C:\SVN-EDGE') do echo %%B

with tokens=2* %%U 匹配 token 2 而 %%V 匹配 *


如果第一部分的长度始终相同,您可以使用延迟子串来跳过它:!line:~8!

setlocal EnableDelayedExpansion

for /f "delims=" %%a in ('svn status C:\SVN-EDGE') do (
set line=%%a
set line=!line:~8!
echo !line!
)

运行 set/? 以获得有关延迟扩展和变量操作的更多信息。

关于batch-file - 如何在 BAT For 中获取 token 2 以后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14294928/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com