2016-12-14 65 views
0

我有一個文本文件,我知道該文件的第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行的一切變量

+0

當我嘗試你的建議時,我用有問題的文件的路徑和名稱替換'your_filename',當我嘗試echo%content%時,我簡單地得到'Echo is off'。 –

回答

0

下面是如何我做一個簡單的例子:

這種方法意味着不需要跳過/計數行,只能選擇robocopy目標是服務器路徑的行(按照您的規範)。

For /F "Tokens=1*Delims=\" %%A In ('Find "Dest : \\" ^<"file.ext"') Do Set "VAR=\\%%B" 

哪裏file.ext是您ROBOCOPY輸出日誌。

+0

這工作完美。謝謝! –

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

如果你需要「引用」包含分離器,如果你使用帶引號的文件名,那麼你還需要包括skipusebackq解析選項的文件名。

相關問題