将文本文件的特定行的特定字符串分配给变量

时间:2016-12-14 19:17:25

标签: batch-file

我有一个文本文件,我知道文件的第16行将以_____Dest : xxx开头,其中下划线(5)都是空格,xxx不是已知的字符长度,可能包含空格。我想将xxx分配给批处理文件中的变量。我想代码中会包含一个for /f "skip=15 delims="和一个find "Dest : ",但我并不确定如何处理它。

如果有帮助,我知道xxx将是一个以\\开头的路径,我想在变量中加入\\

以下是该文件的摘录:

******************************************************************************* 
*                                                                             * 
* This is the robocopy log section.                                           * 
*                                                                             * 
******************************************************************************* 



-------------------------------------------------------------------------------
   ROBOCOPY     ::     Robust File Copy for Windows                              
-------------------------------------------------------------------------------

  Started : Fri Dec 09 20:28:08 2016

   Source : \\server\path...
     Dest : \\server\path...

    Files : *.*

  Options : *.* /TEE /S /E /COPY:DAT /MT:128 /R:1 /W:1 

etc.
etc.

我想将Dest :之后的第16行的所有内容分配给变量

2 个答案:

答案 0 :(得分:0)

以下是我如何做的快速示例:

此方法意味着无需跳过/计算行,只需选择robocopy目标为服务器路径的行(根据您的规范)。

System.out.println(..)

其中file.ext是您的robocopy输出日志。

答案 1 :(得分:0)

for /f "skip=15tokens=1*delims=: " %%a in (filename) do set "var=%%b"&goto done
:done

您需要在哪里引用"任何包含分隔符的文件名,如果您使用带引号的文件名,那么您还需要在usebackq之前包含skip解析选项。