Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Parsing 用dos命令行解析一个简单的文本文件_Parsing_Batch File_Cmd - Fatal编程技术网

Parsing 用dos命令行解析一个简单的文本文件

Parsing 用dos命令行解析一个简单的文本文件,parsing,batch-file,cmd,Parsing,Batch File,Cmd,我有一个文本文件(vernum.txt),其中包含一行: 第二次修订时 如何使用dos cmd行读入该行并仅使用数字保存变量?它将始终是“在修订时”,使用如下命令: @ECHO off SET /P MYVAR=<vernum.txt ECHO MYVAR=%MYVAR% FOR /f "tokens=3* delims=.\ " %%K IN ( "%MYVAR%" ) DO ( SET /A RESULT=%%K ) ECHO The number is: %RESULT%

我有一个文本文件(vernum.txt),其中包含一行:

第二次修订时


如何使用dos cmd行读入该行并仅使用数字保存变量?它将始终是“在修订时”

,使用如下命令:

@ECHO off

SET /P MYVAR=<vernum.txt
ECHO MYVAR=%MYVAR%
FOR /f "tokens=3* delims=.\ " %%K IN ( "%MYVAR%" ) DO (
    SET /A RESULT=%%K
)
ECHO The number is: %RESULT%

pause
@ECHO关闭
设置/P MYVAR=
如果文件不在当前目录中,您可能需要将
vernum.txt
更改为完整路径名。如果文件名包含空格,则需要使用“双引号”引用该名称。如果使用引号,还需要将键指令
usebackq
添加到
tokens
关键字之前的引号中

限定符中结束引号前的空格很重要-它表示“分隔符为
空格
标记=3
表示第三个标记:
修订版
2


请参见文档提示中的
获取/?

不幸的是,该答案失败,因为它返回的是“3”。而不是“3”“你好,我是dos命令行的新手,我需要一个非常类似的解决方案。我正在解析一个较大的文件,并试图提取一个不同的数字。请你快速解释一下你的代码好吗。主要是for循环,因此我可以理解它并根据自己的需要进行编辑@djangofan
for /f "tokens=3delims=. " %%i in (vernum.txt) do set vernum=%%i

echo version number=%vernum%