我很确定这是一个简单的命令,但我无法在任何地方找到它。
示例文件内容:
A-极长LINE-OF-垃圾VERSION123-CONTINUE-LONG-LINE-OF-垃圾
1.)假设该行真的很长
2.)我需要找出它是什么版本。我知道它包含版本,但我不知道它是版本123。
3.)我想要的是一个命令,它将通过文件查找子字符串" VERSION"如果它发现它打印出VERSION123而不是超级duper长线,这很可能导致系统冻结。
谢谢
答案 0 :(得分:3)
假设该版本纯数字且不以零开头,则应执行以下操作:
set VAR=A-VERY-LONG-LINE-OF-GARBAGE-VERSION123-CONTINUE-LONG-LINE-OF-GARBAGE
set /A VAR=%VAR:*VERSION=%
echo VERSION%VAR%
如果出现多个VERSION
部分,则会拍摄第一部分。
请注意,这仅适用于Windows命令提示符(cmd.exe
),由于command.com
,它将不适用于MS-DOS(set /A
)那里不支持(我甚至不确定字符串替换语法是否在那里工作)!
如果版本代码不是纯数字,您可以使用以下内容:
set VAR=A-VERY-LONG-LINE-OF-GARBAGE-VERSION123-CONTINUE-LONG-LINE-OF-GARBAGE
set VAR=%VAR:*VERSION=%
for /F "tokens=1 delims=- eol=-" %%L in ("%VAR%") do (set VAR=%%L)
echo VERSION%VAR%
这取决于-
字符分隔版本代码的事实。
如果您想直接在命令提示符中而不是在批处理文件中尝试此操作,请将%%L
替换为%L
(两次)。